zhangyu-duck opened a new pull request, #19867:
URL: https://github.com/apache/nuttx/pull/19867

   ## Summary
   
   Rework the atomic implementation to support multiple selectable backends via 
Kconfig:
   
   - `LIBC_ATOMIC_TOOLCHAIN` - compiler builtins (default, lock-free)
   - `LIBC_ATOMIC_ARCH` - arch-native atomic instructions (lock-free)
   - `LIBC_ATOMIC_HWSPINLOCK` - hardware spinlock wrapping critical section 
(cross-core, for chips without atomic instructions but with hwspinlock 
peripheral)
   - `LIBC_ATOMIC_IRQ` - IRQ disable wrapping critical section (single-core 
only, fallback for ARMv6-M / ARM7TDMI / ARM926EJS etc.)
   
   Add hwspinlock-based atomic for cxd56, rp2040, and lc823450 (multi-core 
capable chips).
   
   Switch `machine/arch_atomic.c` to IRQ-based implementation (single-core 
only, does not support SMP).
   
   ## Stacked PR chain
   
   Depends on #19866. This is PR 2 of 3:
   - #19866: atomic.h header fixes
   - PR 2 (this): multi-backend atomic implementation
   - PR 3: toolchain builtin atomic + API rename
   
   ## Test
   
   CI testbuild across ARM/RISC-V/SIM targets.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to