When developing to an ESP32C3 (RISCV32 IMC) that doesn't have proper atomic support, operations such as AtomicPtr::compare_exchange doesn't exist. That's necessary when enabling embassy-executor's rtos-trace feature by src/raw/trace.rs.
On 'src/raw/mod.rs' we already have this for AVR:
#[cfg(not(feature = "arch-avr"))]
use core::sync::atomic::AtomicPtr;
...
#[cfg(feature = "arch-avr")]
use portable_atomic::AtomicPtr;
Doing the same for RISCV and modifying src/raw/trace.rs's imports, should fix this.
Another suggestion would be adding a portable-atomic feature and a internal atomic module that controls which atomic flavor we're using.
Environment
- embassy-executor-0.9.1
- Cargo 1.94.0
- Rust 1.88
- Arch RISCV32 IMC
When developing to an ESP32C3 (RISCV32 IMC) that doesn't have proper atomic support, operations such as
AtomicPtr::compare_exchangedoesn't exist. That's necessary when enabling embassy-executor'srtos-tracefeature bysrc/raw/trace.rs.On 'src/raw/mod.rs' we already have this for AVR:
Doing the same for RISCV and modifying
src/raw/trace.rs's imports, should fix this.Another suggestion would be adding a
portable-atomicfeature and a internal atomic module that controls which atomic flavor we're using.Environment