ARM-software / CMSIS-Compiler

CMSIS Compiler support for Arm Compiler
https://arm-software.github.io/CMSIS-Compiler/latest/index.html
Apache License 2.0
26 stars 11 forks source link

CMSIS-Compiler Support

About

CMSIS-Compiler software components allow embedded software developers to retarget standard I/O streams and file operations to specific platform and enable thread safe operations using RTOS interface.

CMSIS-Compiler documentation explains available functionality and APIs.

Note

  • CMSIS-Compiler replaces and extends retargeting functionality previously provided as part of Keil::ARM_Compiler pack.
  • See Migrating projects from CMSIS v5 to CMSIS v6 for a guidance on updating existing projects to CMSIS-Compiler.

Repository top level structure

    📦
    ┣ 📂 .github          GitHub Action workflow and configuration
    ┣ 📂 documentation    Documentation directory
    ┣ 📂 example          Usage examples
    ┣ 📂 include          Include header files of software components
    ┣ 📂 source           Source code of software components
    ┗ 📂 template         User code templates

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-Compiler $ ./documentation/doxygen/gen_doc.sh

Prerequisites for this script to succeed are:

Also see Documentation README.

CMSIS-Pack Bundle

The CMSIS-Pack bundle can be generated with

CMSIS-Compiler $ ./gen_pack.sh

Prerequisites for this script to succeed are:

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 and change logs are taken from the available annotated tags.

Release Pack

A release is simply done via the GitHub Web UI. The newly created tag needs to have the pattern v<version> where <version> shall be the SemVer <major>.<minor>.<patch> version string for the release. The release description is used as the change log message for the release.

When using an auto-generated tag (via Web UI) the release description is used as the annotation message for the generated tag. Alternatively, one can prepare the release tag in the local clone and add the annotation message independently from creating the release.

Once the release is published via the GitHub Web UI the release workflow generates the documentation and the pack (see above) and attaches the resulting pack archive as an additional asset to the release.

License Terms

CMSIS-Compiler is licensed under Apache License 2.0.

Note

Individual files contain the following tag instead of the full license text.

SPDX-License-Identifier: Apache-2.0

This enables machine processing of license information based on the SPDX License Identifiers that are here available: http://spdx.org/licenses/

Contributions and Pull Requests

Contributions are accepted under Apache 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: