Skip to content

Polyfill implementation of c++ atomics for the armv6m architecture

License

Notifications You must be signed in to change notification settings

Javier-varez/cortex-m_atomics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cortex-M Atomics

Polyfill implementation of atomics for the armv6m architecture. It uses critical sections for CAS operations, while just normal ldr and str instructions for aligned atomic read/writes, which don't need the ldrex or strex instructions.

Using this library with multi-core systems will not ensure operations are seen as atomic from the other core. Special synchronization mechanisms need to be used, which largely depend on the multi-core architecture.

This library does not provide any headers, since builds on top of the standard atomic and stdatomic.h headers by implementing compiler intrinsics for Clang and GCC. The only requirement is to link against it.

Some documentation can be found here and here.

This library is not currently complete, some atomic primitives are not yet implemented.

About

Polyfill implementation of c++ atomics for the armv6m architecture

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published