ChanServ changed the topic of #rust-embedded to: Welcome to the Rust Embedded IRC channel! Bridged to #rust-embedded:matrix.org and logged at https://libera.irclog.whitequark.org/rust-embedded, code of conduct at https://www.rust-lang.org/conduct.html
justacec[m] has quit [Quit: Idle timeout reached: 172800s]
apirkle has quit [Quit: The Lounge - https://thelounge.chat]
cr1901 has quit [Read error: Connection reset by peer]
cr1901 has joined #rust-embedded
cr1901 has quit [Read error: Connection reset by peer]
KevinPFleming[m] has quit [Quit: Idle timeout reached: 172800s]
_whitelogger has joined #rust-embedded
ska has quit [Ping timeout: 276 seconds]
inara` has quit [Ping timeout: 252 seconds]
inara has joined #rust-embedded
cr1901 has joined #rust-embedded
dav1d has quit [Quit: bye]
dav1d has joined #rust-embedded
dav1d has quit [Quit: bye]
dav1d has joined #rust-embedded
jcroisant has quit [Quit: Connection closed for inactivity]
dav1d has quit [Quit: bye]
dav1d has joined #rust-embedded
ska has joined #rust-embedded
dav1d has quit [Quit: bye]
dav1d has joined #rust-embedded
dav1d5 has joined #rust-embedded
dav1d has quit [Remote host closed the connection]
dav1d5 is now known as dav1d
<thejpster[m]> ping on https://github.com/rust-embedded/cortex-m/pull/605 again for the arm-team.
<thejpster[m]> we really should get a 0.7.8 out soon
<thejpster[m]> don't ask me how much time I lost today because `bkpt 0xAB` is a HardFault when in unprivileged mode....
sroemer has quit [Quit: WeeChat 4.5.2]
Pete[m]1 has joined #rust-embedded
<Pete[m]1> Ok, first time really playing with no_std rust.. Design question: I'm trying to design a system where a "provider" type can be implemented outside the library, so using a trait, and the trait needs a function that can return a Stream/AsyncIterator that generates a stream of data/events to be consumed... I can't seem to find a reasonable solution that doesn't drag in Box and require an allocator. Any ideas?
jfsimon has quit [Ping timeout: 265 seconds]
diondokter[m] has joined #rust-embedded
<diondokter[m]> <Pete[m]1> Ok, first time really playing with no_std rust.. Design question: I'm trying to design a system where a "provider" type can be implemented outside the library, so using a trait, and the trait needs a function that can return a Stream/AsyncIterator that generates a stream of data/events to be...
<diondokter[m]> The trait can have an associated type. Then the impl decides how it's done
<diondokter[m]> There are a lot of primitives for streaming/sharing data: https://crates.io/crates/embassy-sync
<diondokter[m]> In embedded we pretty much always make these with a bounded size
vollbrecht[m] has joined #rust-embedded
<vollbrecht[m]> Did anybody had a look at the BlueOS kernel? It seams to have landed couple days ago on [github](https://github.com/vivoblueos/kernel/tree/main) and already got 500 stars.
<vollbrecht[m]> its a fully in rust written kernal/OS that also sources some dependency like embedded-io heapless smoletcp etc.
<thejpster[m]> interesting. They use gn rather than cargo.
<Pete[m]1> diondokterThanks. I'll explore there.
<thejpster[m]> it's POSIX, but they run tests on the QEMU MPS2-AN385 machine, which uses an Arm Cortex-M3, and the MPS3-AN547 which is a generic Armv8-M Mainline based machine (like a Cortex-M33).
Ralph[m] has joined #rust-embedded
<vollbrecht[m]> they are building smartphones afaik, and since many Chinese firms are needing to ditch Google/Android i think this is one of there attempts here
<thejpster[m]> I'd guess more like smart watches and smart bulbs rather than mobile phones. Otherwise why target Cortex-M?
<vollbrecht[m]> yeah that would make more sense, was just a wild guess by me looking at there background
<thejpster[m]> I read the Wikipedia page and I feel I know even less: https://en.wikipedia.org/wiki/BlueOS
<thejpster[m]> "Including devices that has low as 32 MB of RAM"
<thejpster[m]> If anyone has any ideas on how to handle cotton UsbEvents and interrupt endpoint reports from a future::Stream, please let me know
<dirbaio[m]> You can make two tasks each with it's own loop
<dirbaio[m]> Or put each loop in an async{} block then join() them
<dirbaio[m]> Or you can match select(stream1.next(), stream2.next()).await
<dirbaio[m]> ah well, I see the hid object comes from the "connect" event. maybe you can have a dedicated task for handling the hid device and spawn it when connected, and let it exit when it disconnects so you spawn it again later when reconnected
<thejpster[m]> I'll try that
<thejpster[m]> thanks
okhsunrog[m] has quit [Quit: Idle timeout reached: 172800s]
Noah[m] has quit [Quit: Idle timeout reached: 172800s]