Skip to content

ARM-software/CMSIS-RTX

Repository files navigation

CMSIS-RTX RTOS implementation

CMSIS-RTX contains Keil RTX5 RTOS - a real-time operating system for Arm Cortex-M and Cortex-A processor-based devices that implements the CMSIS-RTOS2 API as its native interface.

CMSIS-RTX documentation explains the functionality, configuration and usage of CMSIS-RTX in embedded software projects.

Note

Repository toplevel structure

  📦
  ┣ 📂 .github/workflows        GitHub Action workflows
     ┣ 📄 gh-pages.yml           Deployment of static documentation from gh-pages branch to GitHub Pages
     ┣ 📄 libs.yml               Build of the RTX libraries
     ┗ 📄 pack.yml               Generation/publish of the pack and documentation
  ┣ 📂 Config                   Configuration file templates
  ┣ 📂 Documentation            Target directory for generated documentation
     ┗ 📂 Doxygen                Source directory for documentation
        ┗ 📄 gen_doc.sh          Documentation generation script
  ┣ 📂 Examples                 Example projects (MDK uVision and CMSIS-Toolbox)
  ┣ 📂 Include                  Public header files of RTX software component
  ┣ 📂 Library                  Project files to build pre-built libraries
  ┣ 📂 Source                   Private header and source files of RTX software component
  ┣ 📂 Template                 User code template files
  ┣ 📄 ARM.CMSIS-RTX.pdsc        Pack description file
  ┗ 📄 gen_pack.sh               Pack generations script, see below

Generating Software Pack

Some helper scripts are provided to generate the release artifacts from this repository.

Doxygen Documentation

Generating the HTML-formatted documentation from its Doxygen-based source is done via

CMSIS-RTX $ ./Documentation/Doxygen/gen_doc.sh

Prerequisites for these scripts to succeed are:

  • Doxygen 1.9.6
  • Python 3.9 or later with linkchecker package installed pip install linkchecker

Also see Documentation README.

CMSIS-Pack Bundle

The CMSIS-Pack bundle can be generated with

CMSIS-RTX $ ./gen_pack.sh

Prerequisites for this script to succeed are:

  • Generated documentation (see above)
  • 7z
  • packchk
  • xmllint

Version and Changelog Inference

The version and changelog embedded into the documentation and pack are inferred from the local Git history. In order to get the full changelog one needs to have a full clone (not a shallow one) including all release tags.

The version numbers are taken from the available annotated tags. The shown release dates and changelogs are the tagger date and the associated message is.

License

CMSIS-RTX is licensed under Apache License 2.0.

Contributions and Pull Requests

Contributions are accepted under Apache License 2.0. Only submit contributions where you have authored all of the code.

Issues, Labels

Please feel free to raise an issue on GitHub to report misbehavior (i.e. bugs)

Issues are your best way to interact directly with the maintenance team and the community. We encourage you to append implementation suggestions as this helps to decrease the workload of the very limited maintenance team.

We shall be monitoring and responding to issues as best we can. Please attempt to avoid filing duplicates of open or closed items when possible. In the spirit of openness we shall be tagging issues with the following:

  • bug – We consider this issue to be a bug that shall be investigated.

  • wontfix - We appreciate this issue but decided not to change the current behavior.

  • out-of-scope - We consider this issue loosely related to CMSIS. It might be implemented outside of CMSIS. Let us know about your work.

  • question – We have further questions about this issue. Please review and provide feedback.

  • documentation - This issue is a documentation flaw that shall be improved in the future.

  • DONE - We consider this issue as resolved - please review and close it. In case of no further activity, these issues shall be closed after a week.

  • duplicate - This issue is already addressed elsewhere, see a comment with provided references.