Just for the record to avoid confusions:The ARM M3 cores on the first Pi Pico do not have any atomic support. However, the ARM M33 does and the SDK has some C functions for atomic operations.
Is the C++ std::atomic API fully supported? On Apple ARM processors, the memory model of ARM must be carefully considered when making use of atomic operations. I presume it would be the same here. The ARM docs state "All store-release operations are multi-copy atomic". So it seems that atomic operations exist and use of such operations have the same caveats as on Apple M? cores regarding the much more relaxed memory model than on Intel CPUs.
Pi Pico = RP2040 > ARM Cortex-M0+ > ARMv6-M architecture
Instruction set: ARMv6-M (Thumb-1 (most), Thumb-2 (some))
Pi Pico2 = RP2350 > ARM Cortex-M33 > ARMv8-M Mainline architecture
Instruction set: Thumb-1, Thumb-2, Saturated, DSP, Divide, FPU (SP), TrustZone, Co-processor
This is different family and architecture:
Apple's M2, M3 > ARMv8.6-A compatible > ARMv8.6-A architecture 64bit
Statistics: Posted by gmx — Fri Dec 06, 2024 5:11 pm