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
<Jubilee[m]> hm. is there a significant logical difference between the different RISCV interrupt ABIs, or is it mostly slightly different codegen?
dirbaio[m] has quit [Quit: Idle timeout reached: 172800s]
adamgreig[m] has quit [Quit: Idle timeout reached: 172800s]
cinemaSundays has joined #rust-embedded
PhilMarkgraf[m] has quit [Quit: Idle timeout reached: 172800s]
nadja has quit [Ping timeout: 260 seconds]
nadja has joined #rust-embedded
i509vcb[m] has quit [Quit: Idle timeout reached: 172800s]
M9names[m] has quit [Quit: Idle timeout reached: 172800s]
pbsds3 has quit [Quit: The Lounge - https://thelounge.chat]
pbsds3 has joined #rust-embedded
<cr1901> Okay, I'll bite... how does the nightly generation remove the "mod generic" code from each top-level module in the nightlies? https://github.com/stm32-rs/stm32-rs
<cr1901> If make_mod is active, the "mod generic" code is never emitted.
<Jubilee[m]> ...
<Jubilee[m]> ...it doesn't make sense to call a "riscv-interrupt-m" fn, right?
sroemer has joined #rust-embedded
M9names[m] has joined #rust-embedded
<M9names[m]> <Jubilee[m]> "...it doesn't make sense to call..." <- from user code? no, never.
berkus[m] has quit [Quit: Idle timeout reached: 172800s]
<Jubilee[m]> tbh, does it even make sense to do a "call" from Rust code at all?
<Jubilee[m]> even if you're the kernel, that... seems incorrect.
cinemaSundays has quit [Quit: Connection closed for inactivity]
<Jubilee[m]> well, I filed a few more bugs, too:
<Jubilee[m]> * well, I filed a few more bugs, too:
<Jubilee[m]> * well, I filed a "few" more bugs:
wassasin[m] has quit [Quit: Idle timeout reached: 172800s]
korken89[m] has quit [Quit: Idle timeout reached: 172800s]
sroemer has quit [Ping timeout: 272 seconds]
thejpster[m] has quit [Quit: Idle timeout reached: 172800s]
explodingwaffle1 has joined #rust-embedded
<explodingwaffle1> i wonder if it coould make sense to call from another interrupt abi function? probably best to just do those in asm though
JamesMunns[m] has quit [Quit: Idle timeout reached: 172800s]
davidmpye[m] has quit [Quit: Idle timeout reached: 172800s]
sroemer has joined #rust-embedded
sroemer has quit [Changing host]
sroemer has joined #rust-embedded
Ralph[m] has quit [Quit: Idle timeout reached: 172800s]
barafael[m] has quit [Quit: Idle timeout reached: 172800s]
jr-oss has joined #rust-embedded
thejpster[m] has joined #rust-embedded
<thejpster[m]> If you’re trying to cheat and bounce two interrupts into one function, yeah, you should probably do that in assembly
diondokter[m] has joined #rust-embedded
<diondokter[m]> Hey all, just wanted to let y'all know I've released a release candidate for device-driver 1.0: https://github.com/diondokter/device-driver
<diondokter[m]> Would love it if people checked it out, it's been a lot of hard work and I'm really happy about its current state.
Ralph[m] has joined #rust-embedded
<Ralph[m]> <diondokter[m]> "Hey all, just wanted to let y'..." <- > <@diondokter:matrix.org> Hey all, just wanted to let y'all know I've released a release candidate for device-driver 1.0: https://github.com/diondokter/device-driver... (full message at
<diondokter[m]> Ralph[m]: Haha good point!
<diondokter[m]> I'm using it in my S2-LP driver: https://github.com/diondokter/s2lp
<diondokter[m]> There are other drivers that use older versions too
<Ralph[m]> if you add example links to the README it might be great to have one each for I2C and SPI based devices (or of course one driver which supports both) as well as maybe 1-2 other things (always presuming that there are already drivers out there doing that with your crate!), e.g. UART-based
<diondokter[m]> alexmoon: If you update to the release you can release your driver on crates.io too (not sure if you were planning that)
<diondokter[m]> <Ralph[m]> "if you add example links to..." <- I added some to the preface together with a sneak preview :)
<Jubilee[m]> <explodingwaffle1> "i wonder if it coould make sense..." <- The machine backend will reject normal calls. I think we should also.
<Jubilee[m]> I think maybe we _do_ want to allow calls, but only "special" ones?
<Jubilee[m]> e.g. I could see `become interrupt_fn();` being valid.
<Jubilee[m]> but not unqualified interrupt_fn(), get out.
<Jubilee[m]> an alternative would be to add extern "rust-save" and then people call into that.
<Jubilee[m]> * machine backend (the architecture-specific backend to LLVM, I mean) will, * will usually reject normal
<thejpster[m]> What’s become?
dirbaio[m] has joined #rust-embedded
sroemer has quit [Ping timeout: 244 seconds]
<Jubilee[m]> yeah, become is a type of call that is inherently already sensitive to the signature of the function you call it from, which is why it makes sense to say "okay, you can become an interrupt handler".