We plan on writing parts of nRF52 firmware in C + Rust.
One issue with nRF52 is that it needs monitor mode so that chip doesn't crash on breakpoint if BLE is enabled - wiki.segger.com/nRF52_Series_D…Debugging_on_Nordic_nRF52
But Ozone doesn't fully support Rust (latest 3.28b) - i.e. it can see symbols, you can break on them, you see structures, but without values. It has a workaround that you add watch to a specific location in memory and cast it to some type, but it's fairly impractical.
CLion with Rust plugin via JLink GDB server works for Rust (at least we tried it on STM32), but not sure if I can make the monitor mode work there?
Any suggestions on how to proceed with this? If the code only needs adding some of the Segger monitor code, it may be fine.
(BTW Rust support in Ozone would be real nice, it seems it doesn't have that far to completion)
For comparison some screenshots of Rust code Ozone vs in CLion+JLink GDB server in attachments - you can see the structure in local variables, but no values in Ozone.
One issue with nRF52 is that it needs monitor mode so that chip doesn't crash on breakpoint if BLE is enabled - wiki.segger.com/nRF52_Series_D…Debugging_on_Nordic_nRF52
But Ozone doesn't fully support Rust (latest 3.28b) - i.e. it can see symbols, you can break on them, you see structures, but without values. It has a workaround that you add watch to a specific location in memory and cast it to some type, but it's fairly impractical.
CLion with Rust plugin via JLink GDB server works for Rust (at least we tried it on STM32), but not sure if I can make the monitor mode work there?
Any suggestions on how to proceed with this? If the code only needs adding some of the Segger monitor code, it may be fine.
(BTW Rust support in Ozone would be real nice, it seems it doesn't have that far to completion)
For comparison some screenshots of Rust code Ozone vs in CLion+JLink GDB server in attachments - you can see the structure in local variables, but no values in Ozone.