Skip to content

intel/cpp-baremetal-concurrency

C++ Bare Metal Concurrency

Unit Tests

C++ Bare Metal Concurrency is a small C++ header-only library that abstracts the idea of concurrency so that code that runs using standard C++ concurrency constructs can also run using concurrency mechanisms provided by a bare metal microcontroller.

A careful reading of [intro.multithread] is recommended to understand how the C++ memory model defines well-formed concurrent execution.

The library provides for low-level control over two primitive concurrency mechanisms: atomic operations and critical sections.

See the full documentation.

C++ standard support is as follows:

  • C++23: main branch (active development)
  • C++20: cpp20 branch (supported)
  • C++17: unsupported, but the atomic operations part of the library from the cpp20 branch will work with C++17 also.

Compiler support:

Branch GCC versions Clang versions
main 12 thru 14 18 thru 21
cpp20 12 thru 14 14 thru 21

About

Basic concurrency primitives for bare metal firmware running on single core microcontroller systems.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5