mikehcox has joined #rust-embedded
fabic has joined #rust-embedded
<re_irc> <@d​irbaio:m​atrix.org> Yes, finally!
<re_irc> <@n​ewam:m​atrix.org> Hm, does that mean we can securely do self-hosted runners?
<re_irc> <@d​irbaio:m​atrix.org> maybe, if you set ` Require approval for all outside collaborators ` and make sure to througly audit ALL prs before approving... :)
<re_irc> <@d​irbaio:m​atrix.org> what I want from that is to not have to approve, so setting it to ` Require approval for first-time contributors who are new to GitHub `
emerent has quit [Ping timeout: 255 seconds]
emerent_ has joined #rust-embedded
emerent_ is now known as emerent
<re_irc> <@a​damgreig:m​atrix.org> Aah yay at last
<re_irc> <@o​rvi:m​atrix.org> nice, wonder what the threshold for "new to GitHub" is?
<re_irc> <@d​irbaio:m​atrix.org> I guess whatever their ALgOrIThMs decide
* re_irc @o​rvi:m​atrix.org sets computer time to 6500 BCE
starblue1 has quit [Ping timeout: 268 seconds]
starblue1 has joined #rust-embedded
fabic has quit [Ping timeout: 268 seconds]
fabic has joined #rust-embedded
radens has quit [Quit: Connection closed for inactivity]
fabic has quit [Ping timeout: 265 seconds]
dcz has joined #rust-embedded
radens has joined #rust-embedded
fabic has joined #rust-embedded
fabic has quit [Ping timeout: 265 seconds]
radens has quit [Quit: Connection closed for inactivity]
fabic has joined #rust-embedded
mikehcox has quit [Ping timeout: 246 seconds]
<re_irc> <@u​bik:m​atrix.org> hm... why won't OpenOCD find the RTT control block?
<re_irc> <@u​bik:m​atrix.org> Info : rtt: Searching for control block 'SEGGER_RTT'
<re_irc> <@u​bik:m​atrix.org> Info : rtt: No control block found
<re_irc> <@9​names:m​atrix.org> is it because the symbol has a leading underscore that you don't have in your config file?
<re_irc> <@u​bik:m​atrix.org> Nope. Tried that.
<re_irc> <@u​bik:m​atrix.org> `cargo embed` picks up RTT, BTW
<re_irc> <@9​names:m​atrix.org> hmm, openocd is just doing a string comparison against the string you specify at that address. maybe check the data at that address to make sure it's there?
<re_irc> <@9​names:m​atrix.org> if you look in https://github.com/probe-rs/probe-rs-rtt/blob/master/probe-rs-rtt/src/rtt.rs the string it includes is
<re_irc> <@9​names:m​atrix.org> "SEGGER RTT"
<re_irc> <@9​names:m​atrix.org> that's a space, not an underscore
<re_irc> <@u​bik:m​atrix.org> regardless, doesn't find it either
<re_irc> <@u​bik:m​atrix.org> But you're right. Looks like a space
<re_irc> <@u​bik:m​atrix.org> maybe OpenOCD is checking it too soon, before it's initialized by the program?
<re_irc> <@9​names:m​atrix.org> quite possible if you're not running to main before calling rtt_setup
<re_irc> <@9​names:m​atrix.org> the openocd docs have an example that calls resume first
<re_irc> <@9​names:m​atrix.org> rtt start
<re_irc> <@9​names:m​atrix.org> rtt server start 9090 0
<re_irc> <@9​names:m​atrix.org> resume
<re_irc> <@9​names:m​atrix.org> rtt setup 0x20000000 2048 "SEGGER RTT"
<re_irc> <@u​bik:m​atrix.org> I have `"runToMain": true,`
<re_irc> <@u​bik:m​atrix.org> should be enough
<re_irc> <@u​bik:m​atrix.org> plus, resume is useless because the device is not halted
<re_irc> <@t​halesfragoso:m​atrix.org> ub|k: The string is initialized in main, not before
<re_irc> <@u​bik:m​atrix.org> thalesfragoso: then what should I do?
<re_irc> <@u​bik:m​atrix.org> In any case, I see that also here they break on main: https://github.com/knurling-rs/vs-code-gdb-defmt-example/blob/main/xtask/src/main.rs#L95
<re_irc> <@t​halesfragoso:m​atrix.org> Maybe search for more than 0x30
<re_irc> <@t​halesfragoso:m​atrix.org> Oh, that is the size of the RTT buffer right ? That knurling link is giving the exact address of the control block by checking nm
<re_irc> <@t​halesfragoso:m​atrix.org> Actually, no it's the control block size not buffer size, might try giving the exact address of it, plus use the same size as knurling
<re_irc> <@9​names:m​atrix.org> the size you give in the openocd commands should not have any impact on finding the block.
<re_irc> <@9​names:m​atrix.org> it only checks for the ID string, up to a max length of 16 bytes (including \0)
<re_irc> <@u​bik:m​atrix.org> using the knurling code/xtask:
<re_irc> <@u​bik:m​atrix.org> ```Info : rtt: Searching for control block 'SEGGER RTT'
<re_irc> <@u​bik:m​atrix.org> Info : rtt: No control block found
<re_irc> <@9​names:m​atrix.org> does it still do that if you send the commands later?
fabic has quit [Ping timeout: 268 seconds]
<re_irc> <@h​argonix:m​atrix.org> Hey therealprof, I see that in the microbit BSP crate's examples you are constantly referring to this board::Board struct like e.g. here: https://github.com/nrf-rs/microbit/blob/main/examples/gpio-hal-blinky/src/main.rs#L12 but I was neither able to find it in the docs...
<re_irc> ... https://docs.rs/microbit-v2/0.10.1/microbit/index.html, nor does my rust compiler believe it exists:
<re_irc> <@h​argonix:m​atrix.org> error[E0432]: unresolved import `microbit::board`
<re_irc> <@h​argonix:m​atrix.org> --> src/05-led-roulette/src/main.rs:7:15
<re_irc> <@u​bik:m​atrix.org> 9names: ```
<re_irc> <@u​bik:m​atrix.org> > rtt start
<re_irc> <@u​bik:m​atrix.org> > rtt setup 0x20000000 0x30 "SEGGER RTT"
<re_irc> <@u​bik:m​atrix.org> rtt: Searching for control block 'SEGGER RTT'
<re_irc> <@u​bik:m​atrix.org> I believe I kind of understand what the problem is, I just don't get why it would work for them and not for me
<re_irc> <@u​bik:m​atrix.org> I guess the breakpoint isn't triggered early enough
<re_irc> <@a​damgreig:m​atrix.org> isn't it saying "control block found" that time?
<re_irc> <@u​bik:m​atrix.org> yeah, the 2nd time
<re_irc> <@u​bik:m​atrix.org> ah, sorry, I misunderstood the question
<re_irc> <@u​bik:m​atrix.org> No, it doesn't do the same. It works.s
<re_irc> <@u​bik:m​atrix.org> The question is how do I delay the RTT setup until the breakpoint is reached
<re_irc> <@a​damgreig:m​atrix.org> maybe you can set a bp just after the rtt_init call, then rtt setup and start and then continue?
<re_irc> <@u​bik:m​atrix.org> well, actually, the breakpoint is not enough, right? I need to break afterwards
<re_irc> <@u​bik:m​atrix.org> adamgreig: i'll try that, thanks
<re_irc> <@u​bik:m​atrix.org> OK, adding a `sleep` helps. I feel dirty now.
<re_irc> <@u​bik:m​atrix.org> actually, adding a breakpoint after the RTT setup is done and then a `sleep`
<re_irc> <@u​bik:m​atrix.org> actually, I can use a breakpoint on `main` if I add an additional `sleep`
<re_irc> <@u​bik:m​atrix.org> thanks for the help!
fabic has joined #rust-embedded
fabic has quit [Ping timeout: 265 seconds]
starblue1 has quit [Ping timeout: 255 seconds]
starblue1 has joined #rust-embedded
<re_irc> <@n​ewam:m​atrix.org> adamgreig: you mentioned previously I should ping you when the STM32WL PR was good to go; I think it is all good now!
<re_irc> <@n​ewam:m​atrix.org> https://github.com/stm32-rs/stm32-rs/pull/559
<re_irc> <@a​damgreig:m​atrix.org> 👍️, thanks!
<re_irc> <@u​bik:m​atrix.org> newam: can your crate already receive LoRa? Cause the README says transmit only
<re_irc> <@n​ewam:m​atrix.org> In theory yes, but I have not tested it which is why I did not put it in the README
<re_irc> <@n​ewam:m​atrix.org> I did LoRa TX and received it with a SDR; and the modulation was as expected, that's how I know TX works without RX
<re_irc> <@u​bik:m​atrix.org> OK, I'll give it a try
<re_irc> <@n​ewam:m​atrix.org> if it doesn't work [easily] let me know, adding a test-suite for LoRa is on my ToDo list, I have just been tinkering with other things
<re_irc> <@t​herealprof:m​atrix.org> hargonix: That is very fresh and not released yet. 😉
<re_irc> <@h​argonix:m​atrix.org> aha, so instead just the Peripherals struct?
<re_irc> <@t​herealprof:m​atrix.org> Yeah, a bit more. It's an abstraction over different microbit versions to get rid of the branching in the applications themselves.
<re_irc> <@t​herealprof:m​atrix.org> In the true spirit of a BSP. 😀
<re_irc> <@t​herealprof:m​atrix.org> I can't take any credit for that. Plan and execution was all done by robyoung.
<re_irc> <@h​argonix:m​atrix.org> Makes sense, are there any plans for when you're going to release that stuff?
<re_irc> <@t​herealprof:m​atrix.org> I don't have plans but I don't see a reason why not. robyoung ?
<re_irc> <@d​ngrs:m​atrix.org> so... any no-std webservers?
<re_irc> <@n​ewam:m​atrix.org> I looked at that a year ago dngrs (spookyvision@github) (so it may have changed). All I could find were some `no-std` HTTP protocol serialization/deserialization crates, not a whole lot more than that.
<re_irc> <@d​ngrs:m​atrix.org> newam: that's a start ... link?
<re_irc> <@n​ewam:m​atrix.org> https://crates.io/crates/httparse
<re_irc> <@n​ewam:m​atrix.org> There was another one, but I forget the name.
<re_irc> <@d​ngrs:m​atrix.org> thanks!
<re_irc> <@m​etajack:m​atrix.org> Any idea why this happens? It calling `.unwrap()` works fine in `main()` but if call it in another function it fails.
<re_irc> <@m​etajack:m​atrix.org> error[E0599]: the method `unwrap` exists for enum `Result<(), <Clock as stm32h7xx_hal::embedded_hal::digital::v2::OutputPin>::Error>`, but its trait bounds were not satisfied
<re_irc> <@m​etajack:m​atrix.org> --> src/main.rs:227:19
<re_irc> <@m​etajack:m​atrix.org> |
<re_irc> <@d​ngrs:m​atrix.org> any `build.rs` (or otherwise) helpers for including files as `&str`s?
<re_irc> <@d​ngrs:m​atrix.org> oh wait
<re_irc> <@d​ngrs:m​atrix.org> `include!` :D
<re_irc> <@n​ewam:m​atrix.org> Yeah :D
<re_irc> <@n​ewam:m​atrix.org> There's also one to include as bytes
<re_irc> <@d​ngrs:m​atrix.org> `include_str!`
<re_irc> <@d​ngrs:m​atrix.org> perfect
<re_irc> <@n​ewam:m​atrix.org> There's also-also one that someone made which gzip's the include (handy if you want to store entire HTML files without minifying)
GenTooMan has quit [Ping timeout: 255 seconds]
GenTooMan has joined #rust-embedded
<re_irc> <@u​bik:m​atrix.org> has anyone ever seen this error?
<re_irc> <@n​ewam:m​atrix.org> Can't say I have.
<re_irc> <@n​ewam:m​atrix.org> if you have updated the stm32wl stuff recently I would recommend doing a `cargo clean`, I have seen incremental mis-compiles when I change the PAC
<re_irc> <@n​ewam:m​atrix.org> oh, if you're trying to use an interrupt you will need to set `feature = "rt"` in the HAL (it will propagate it to the PAC)
<re_irc> <@g​rantm11235:m​atrix.org> metajack: You can fix this by adding `Clock::Error: Debug` to the `where` clause of your function.
dcz has quit [Ping timeout: 268 seconds]
<re_irc> <@u​bik:m​atrix.org> newam: I figured it out. Removing the direct dependency to the device module fixed it.
<re_irc> <@u​bik:m​atrix.org> not sure why 🤷‍♂️
<re_irc> <@n​ewam:m​atrix.org> > not sure why 🤷‍♂️
<re_irc> <@n​ewam:m​atrix.org> I have `resolver = "2"` set in the `Cargo.toml` for the workspace, and I think that will propagate to your workspace when using `path` or `git` for a dependency.
<re_irc> <@n​ewam:m​atrix.org> That might be my fault :S
<re_irc> <@n​ewam:m​atrix.org> Normally rust does feature unification, where if one crate "foo" sets `features = ["bar"]` for the `spam` dependency then all copies of `spam` will have the `bar` feature enabled.
<re_irc> <@n​ewam:m​atrix.org> Oh, and if you want the device crate it gets exported under `hal::pac` 🙂
<re_irc> <@n​ewam:m​atrix.org> ub|k: Oh, another though; it could be it was at different versions.
<re_irc> <@n​ewam:m​atrix.org> I updated the PAC commit that the HAL points to recently, I keep it up to date with the patches being made here: https://github.com/stm32-rs/stm32-rs/pull/559
<re_irc> <@u​bik:m​atrix.org> newam: yeah, I figured that out, thanks!
<re_irc> <@u​bik:m​atrix.org> anyway, it's fine now
<re_irc> <@u​bik:m​atrix.org> it's just not working 😆
<re_irc> <@u​bik:m​atrix.org> as in, interrupt never called
<re_irc> <@n​ewam:m​atrix.org> When that happens its usually because I forget one of the two; unmasking the IRQ in the NVIC or enabling it in the peripheral 😒
<re_irc> <@u​bik:m​atrix.org> both done
<re_irc> <@n​ewam:m​atrix.org> Hmmm.
<re_irc> <@n​ewam:m​atrix.org> Which IRQ?
<re_irc> <@u​bik:m​atrix.org> by "enabling it in the peripheral", you mean `set_irq_cfg(...)`, right?
<re_irc> <@u​bik:m​atrix.org> RxDone
<re_irc> <@u​bik:m​atrix.org> of course that can be due to a million things, especially me messing up some configuration parameter
<re_irc> <@u​bik:m​atrix.org> i was hoping i could capture the beacon pings I got with the original firmware the other day
<re_irc> <@n​ewam:m​atrix.org> Oooh, this is for the sub-ghz radio?
<re_irc> <@n​ewam:m​atrix.org> I remember looking at that; it has several layers of special-cases if I recall
<re_irc> <@u​bik:m​atrix.org> isn't that what I am supposed to use to decode LoRa?
<re_irc> <@n​ewam:m​atrix.org> Yup, you're correct.
<re_irc> <@n​ewam:m​atrix.org> 1. it is not set in `subghz.irq_status()`
<re_irc> <@n​ewam:m​atrix.org> Just to make sure I am on the same page, the IRQ not firing, do you mean:
<re_irc> <@n​ewam:m​atrix.org> 2. it is set in `subghz.irq_status()`, but not pending in the NVIC
<re_irc> <@u​bik:m​atrix.org> i have no idea whether it's set in irq_status, because I only check that in the interrupt handler. I assume not, since the NVIC doesn't seem to fire
<re_irc> <@n​ewam:m​atrix.org> Gotcha
<re_irc> <@u​bik:m​atrix.org> as in, the handling function is never called
<re_irc> <@n​ewam:m​atrix.org> I'm checking the docs now... I recall there was something unique about that interrupt, but I am having troubling finding it
<re_irc> <@n​ewam:m​atrix.org> What interrupt are you using (the enumeration name)?
<re_irc> <@u​bik:m​atrix.org> RADIO_IRQ_BUSY
<re_irc> <@u​bik:m​atrix.org> Oh, I see. I'm getting an `ExecutionFailure`
<re_irc> <@n​ewam:m​atrix.org> Oh, that would do it.
<re_irc> <@n​ewam:m​atrix.org> As for special cases I think I am remembering a different radio module, this one should be that easy.
<re_irc> <@m​etajack:m​atrix.org> is adc oversampling not implemented for stm32h7xx_hal?
<re_irc> <@u​bik:m​atrix.org> newam: does it seem normal that Get_Status() returns a command execution failure at the beginning?
<re_irc> <@n​ewam:m​atrix.org> ub|k: YES.
<re_irc> <@n​ewam:m​atrix.org> I have had a support ticket open for _months_ with ST and they still have not got back to me.
<re_irc> <@u​bik:m​atrix.org> oh
<re_irc> <@n​ewam:m​atrix.org> I tried out the cube software and it is reproducible using their own code 😕
<re_irc> <@n​ewam:m​atrix.org> I am really not sure what to make of it given that the spec says it should never occur.
<re_irc> <@n​ewam:m​atrix.org> I should add a note in the docs about that, thanks for reminding me 😀
<re_irc> <@u​bik:m​atrix.org> beautiful
<re_irc> <@n​ewam:m​atrix.org> > In the STM32WL55 reference manual (RM0453 Rev 1) section 5.8.5 states "Get_Status(status) can be issued at any time"
<re_irc> <@n​ewam:m​atrix.org> >
<re_irc> <@n​ewam:m​atrix.org> > However, there seem to be many situations where this command will result in a reserved value for the "CmdStatus" field.
<re_irc> <@n​ewam:m​atrix.org> >
<re_irc> <@u​bik:m​atrix.org> BTW, I can't manage to switch to HSE32 standby mode
<re_irc> <@u​bik:m​atrix.org> I get a 168, which seems to be 0x4: 0x4:command processing error (invalid opcode or incorrect number of
<re_irc> <@u​bik:m​atrix.org> parameters)
<re_irc> <@n​ewam:m​atrix.org> Oh, also for LoRa another thing that isn't documented that you may be interested in:
<re_irc> <@n​ewam:m​atrix.org> > In the SubGHz_Phy_PingPong example for the Nucleo-WL55JC2 there two register reads and writes to addresses that are not documented in reference manual.
<re_irc> <@n​ewam:m​atrix.org> >
<re_irc> <@n​ewam:m​atrix.org> > * 0x0889
<re_irc> <@n​ewam:m​atrix.org> Let me try the HSE32, I don't think I have used that.
<re_irc> <@d​khayes117:m​atrix.org> almindor Looks like you got Github Actions setup. Please review my PR at your convenience, no rush. https://github.com/rust-embedded/riscv/pull/58
<re_irc> <@n​ewam:m​atrix.org> ub|k: ...huh, same here, but I get
<re_irc> <@n​ewam:m​atrix.org> ```rs
<re_irc> <@n​ewam:m​atrix.org> Status { mode: Ok(StandbyRc), cmd: Ok(ExecutionFailure) }
<re_irc> <@n​ewam:m​atrix.org> (radio was already in standby RC)
<re_irc> <@n​ewam:m​atrix.org> Oh this might be relevant ub|k
<re_irc> <@n​ewam:m​atrix.org> > If the SMPS is used during the sub-GHz transmission or reception, SMPS must be enabled
<re_irc> <@n​ewam:m​atrix.org> in the Standby with RC 13 MHz mode. The SMPS is selected by Set_RegulatorMode()
<re_irc> <@n​ewam:m​atrix.org> command. When selected, the SMPS is enabled automatically when entering the Standby
<re_irc> <@o​rvi:m​atrix.org> newam: how long ago did you send the support ticket?
<re_irc> <@n​ewam:m​atrix.org> Hmm, that didn't help my case.
<re_irc> <@n​ewam:m​atrix.org> I check the cube code and it is always using STANDBY_RC
<re_irc> <@o​rvi:m​atrix.org> maybe adding a PoC reproducer could help them respond quicker
<re_irc> <@n​ewam:m​atrix.org> April 11th... so a little over 3 months ago.
<re_irc> <@n​ewam:m​atrix.org> I think the delay is because a different vendor provides them with the radio IP
<re_irc> <@o​rvi:m​atrix.org> oh... that's pretty bad
<re_irc> <@o​rvi:m​atrix.org> binary blob radio driver?
<re_irc> <@n​ewam:m​atrix.org> All open in this case; their radio driver does the same thing too :P
<re_irc> <@o​rvi:m​atrix.org> nice! well at least the code is open
<re_irc> <@o​rvi:m​atrix.org> link?
<re_irc> <@n​ewam:m​atrix.org> > link?
<re_irc> <@n​ewam:m​atrix.org> Open, but not that open, it gets generated with a cube MX project
<re_irc> <@u​bik:m​atrix.org> time to go to bed
<re_irc> <@u​bik:m​atrix.org> newam: if you want to have a look in case you spot something funny: https://gist.github.com/0bb5df090292e72fa8c1bb581f4c7d0b
<re_irc> <@o​rvi:m​atrix.org> hm, not familiar with cube MX
<re_irc> <@u​bik:m​atrix.org> i commented out the NVIC part, to help debug
<re_irc> <@n​ewam:m​atrix.org> ub|k:
<re_irc> <@n​ewam:m​atrix.org> if you're using the NUCLEO-WL55JC**2** this will not work, they have hardware filtering for the EU 434MHz band
<re_irc> <@n​ewam:m​atrix.org> ```rs
<re_irc> <@n​ewam:m​atrix.org> sg.set_rf_frequency(&RfFreq::F868).unwrap();
<re_irc> <@n​ewam:m​atrix.org> I don't think anyone stocks the JC**1** which is why I bring it up
<re_irc> <@u​bik:m​atrix.org> newam: I'm using this board: https://www.seeedstudio.com/LoRa-E5-Dev-Kit-p-4868.html
<re_irc> <@n​ewam:m​atrix.org> Ah, yup, that one is perfect for that freq.
<re_irc> <@u​bik:m​atrix.org> which supports EU868
<re_irc> <@g​rantm11235:m​atrix.org> Would it be possible to give `Operation::Transfer` some kind of interior mutability instead?
<re_irc> <@o​rvi:m​atrix.org> grantm11235: something like making the trait around a Box<W>?
<re_irc> <@f​irefrommoonlight:m​atrix.org> Ok, I think I finally have a GPIO API I'm happy with. May have some potential race-condition vulnerabilities.
<re_irc> <@f​irefrommoonlight:m​atrix.org> let mut gpiob = GpioB::new(dp.GPIOB);
<re_irc> <@f​irefrommoonlight:m​atrix.org> ```rust
<re_irc> <@f​irefrommoonlight:m​atrix.org> let mut my_pin = gpiob.new_pin(15, PinMode::Output);
<re_irc> <@f​irefrommoonlight:m​atrix.org> dirbaio: Thoughts?
<re_irc> <@f​irefrommoonlight:m​atrix.org> Btw, I've set this up and it's working. The implementation is a macro mess
<re_irc> <@f​irefrommoonlight:m​atrix.org> *actually, may switch to `Pin::new()` with a check to see if the port's enabled
<re_irc> <@f​irefrommoonlight:m​atrix.org> and remove the `GpioXPort` struct entirely
<re_irc> <@g​rantm11235:m​atrix.org> I just think that it is weird that I can do this https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=691abe55635663af8b232459515f77a0
<re_irc> <@w​illeml:m​atrix.org> Is it possible to use
<re_irc> <@w​illeml:m​atrix.org> #[used]
<re_irc> <@w​illeml:m​atrix.org> On a crate, module, struct, impl or function?
<re_irc> <@w​illeml:m​atrix.org> #[link_section = ".qspi"]
<re_irc> <@w​illeml:m​atrix.org> (maybe not the #[used] part, but the link section, will it work or will it cause problems?)
<re_irc> <@a​damgreig:m​atrix.org> Function, yes
<re_irc> <@a​damgreig:m​atrix.org> The rest, don't think so
<re_irc> <@a​damgreig:m​atrix.org> But if the function calls any other functions they don't inherit it
<re_irc> <@a​damgreig:m​atrix.org> So unless those calls are inlined, your function will jump to wherever those ones live
<re_irc> <@w​illeml:m​atrix.org> Hmm, how would I get around that? Because my crate is currently a library and a binary, and I want the library part in .qspi
<re_irc> <@w​illeml:m​atrix.org> (although, I dont actually need anything to be in internal flash, it could all be in qspi if thats possible)
<re_irc> <@a​damgreig:m​atrix.org> See https://github.com/rust-embedded/cortex-m-rt/issues/42 for some ideas
<re_irc> <@a​damgreig:m​atrix.org> You probably need the vector table and initialisation to be in internal flash to set up qspi in the first place?
<re_irc> <@d​irbaio:m​atrix.org> GrantM11235: Weird indeed, but if it's not mut you can't write to the mut inside Read
<re_irc> <@w​illeml:m​atrix.org> Yeah, I basically want everything in the library part to be in .qspi and only have main.rs in internal
<re_irc> <@g​rantm11235:m​atrix.org> > Transactional trait allows multiple actions to be executed as part of a single SPI transaction
<re_irc> <@g​rantm11235:m​atrix.org> What does it mean to be a part of a single SPI transaction? CS stays low?
<re_irc> <@g​rantm11235:m​atrix.org> brb, reading https://github.com/rust-embedded/embedded-hal/pull/191
<re_irc> <@n​ewam:m​atrix.org> Is there a way in rust (without dropping into ASM) to tell the compiler that memory changed (e.g. after a DMA)?
<re_irc> <@n​ewam:m​atrix.org> Oh, the `core::sync::atomic::compiler_fence` is exactly that.
<re_irc> <@w​illeml:m​atrix.org> Trying to run `cargo build` but am getting the following:
<re_irc> <@w​illeml:m​atrix.org> [...]
<re_irc> <@w​illeml:m​atrix.org> BUG(cortex-m-rt): the reset vector is missing
<re_irc> <@w​illeml:m​atrix.org> rust-lld: error:
GenTooMan has quit [Remote host closed the connection]
GenTooMan has joined #rust-embedded
<re_irc> <@a​damgreig:m​atrix.org> newam: you possibly want a non-compile `atomic::fence` for that
<re_irc> <@a​damgreig:m​atrix.org> especially after DMA, you want to issue the core a DSB instruction
<re_irc> <@a​damgreig:m​atrix.org> (it does depend on the core, it's not that important on M4 perhaps...)
<re_irc> <@t​halesfragoso:m​atrix.org> adamgreig: Fence will issue DMB, but should be enough