The CMSIS-Toolbox is developed as part of the Open-CMSIS-Pack project in collaboration with Arm, NXP, and STMicroelectronics. It is an integral part of next generation software tools and unifies development flows with popular embedded toolchains (Arm, GCC, IAR, and LLVM compiler).
The CMSIS-Toolbox provides command-line tools for:
CMSIS-Toolbox is actively maintained in a dedicated GitHub repository and released as a set of binary utilities.
device: or board: selection and project creation with access to reusable software components.The following tools support the creation of build information for embedded applications:
| Tool | Description |
|---|---|
| cpackget | Pack Manager: install and manage software packs in the development environment. |
| csolution | Project Manager: create build information for embedded applications that consist of one or more related projects. |
| cbuild | Build Invocation: orchestrate the build steps utilizing CMSIS tools and a CMake compilation process. |
The build information is defined with User Input Files in YAML format. It starts with a *.csolution.yml file that refers related, but independent projects defined with *.cproject.yml files. A *.cproject.yml may refer one or more *.clayer.yml files that define re-usable project parts that may be shared across projects.
The build information can refer to Software Packs that define Device and Board information and provide access to re-usable software components such as drivers and middleware. A cdefault.yml file provides a common setup for various compilers and generic translation controls enable compiler agonistic projects; compiler toolchain specific controls may be used when required.
The Output Files contain detailed build information and manage the configuration files for software components.
The diagram below provides an overview of the build information used by the CMSIS-Toolbox.
The following tools support the creation of Software Packs in CMSIS-Pack format:
| Tool | Description |
|---|---|
| packchk | Pack Validation: installs and manages software packs in the local development environment. |
| svdconv | SVD Check / Convert: validate and/or convert System View Description (SVD) files. |
In addition several scripts are provided that simplify pack creation with desktop or cloud workflows. This is described in several hands-on tutorials:
| Hands-on Tutorial | Description |
|---|---|
| SW-Pack-HandsOn | Explains the steps to create a simple software pack using the Open-CMSIS-Pack technology. |
| DFP-Pack-HandsOn | Explains the structure and creation of a Device Family Pack (DFP). |
| BSP-Pack-HandsOn | Explains the structure and creation of a Board Support Pack (BSP). |