CMSIS-POSIX

CMSIS‑POSIX

License

An implementation of the CMSIS‑RTOS2 API on a POSIX platform for testing and mocking embedded code.

🔗 Project Website (GitHub Pages)

📂 Source Code on GitHub


📖 Overview

CMSIS‑POSIX allows you to build and test CMSIS‑RTOS2‑based applications on a POSIX system (e.g., Ubuntu Linux) by mapping RTOS2 threads and mutexes to pthreads and related primitives. This is ideal for:

Status: Partial implementation For full function implementation list please refer to implemented.txt

Contributions via Issues or Pull Requests are very welcome—please follow the existing coding style (no strict format rules, just be consistent).


⚙️ Requirements


🛠️ Installation, configuration and Build

Add to your compilation the sources from src folder and the headers from the inc folder

The project supports user-defined overrides via a separate configuration file cmsisPosix_UserConfig.h in case CP_USE_USER_CONFIG is defined, see cmsisPosix_UserConfig_sample.h.


✅ Running Built‑In Tests

A small test suite is provided under tests/config1/. To run:

cd tests/config1 make run


🚀 Roadmap

This is a community-driven effort—if you need a specific feature, please open an Issue or submit a PR!


🤝 Contributing

PRs are highly welcome.

Please try to match the existing formatting and naming conventions. No strict convention.


⭐️ Show Your Support

If you find CMSIS‑POSIX useful, please give this repo a ★ on GitHub — it helps me know you’re interested and motivates further development!


📜 License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.