Thank you for using the CMSIS-Toolbox that provides command-line tools for:
- Project creation and build of embedded applications utilizing Software Packs with support for multiple compilation tools.
- Software Pack creation, maintenance, and distribution utilizing the CMSIS-Pack format.
-
Overview of the CMSIS-Toolbox (this chapter) and explanations of the other manual chapters.
-
Installation: explains the setup of the CMSIS-Toolbox along with a build environment for embedded applications that are based on Arm Cortex-M processors.
-
Build Overview: describes the overall concept, outlines the csolution project files that describes the software application, and contains references to examples and project templates.
-
Build Tools: command line descriptions for
cbuild
(build projects),csolution
(transform csolution project files), andcpackget
(manage software packs). -
CMSIS Solution Project File Format: detailed description of the csolution project files that describes the software application in YAML format.
-
Generate Application from Components explains the structure of a software pack and how it can be used in an application. It also describes how to upgrade software packs.
-
Reference Applications explains how to use and create examples that show middleware usage on on many different evaluation boards including custom hardware.
-
Configure STM32 Devices with CubeMX explains how to use STM32CubeMX to manage device and board configuration.
-
Build Information Files: details about the build information generated by the
csolution
tool. -
Build Operation: contains for advanced users further details about build process, CMake backend configuration, and generator integration.
-
Pack Creation: describes how to create software packs and explains the pack creation tools
packchk
(software pack verification) andsvdconv
(SVD file converter).
This user's guide assumes some top-level knowledge about Cortex-M software development. It is written for embedded developers that want to utilize microcontroller devices that incorporate Cortex-M processors, Ethos-U NPUs, and work with C/C++ compiler toolchains. The CMSIS-Toolbox supports currently:
- Arm Compiler for Embedded version 6.18 or higher
- Arm FuSa Compiler for Embedded version 6.16.2 or higher is also supported
- Arm GNU Toolchain (GCC) version 10.3.1 or higher
- IAR Compiler version 9.32.1 or higher
- CLANG Compiler version 17.0.1 or higher based on LLVM technology
The CMSIS-Toolbox uses Software Packs for device/board support and access reusable software components. The operation is controlled via intuitive csolution project files in YAML format. The overall application is defined in the *.csolution.yml
file and contains one or more projects that can utilize pre-configured software layers. The build engine CMake/Ninja calls the C/C++ compiler toolchain that generates the Build Output.
The cbuild: Build Invocation command orchestrates the overall build steps. This command calls individual command line tools to generate the application as outlined in the following diagram.
The build steps are:
- cpackget downloads Software Packs that are required for
*.csolution.yml
when using the option--pack
. - csolution processes the User Input and the Software Packs to generate the overall Build Information. Refer to Overview of Operation for details.
- cbuild2cmake converts this Build Information into CMake format.
- CMake/Ninja call the C/C++ compiler toolchain to translate the source files into the application image.
Note:
The CMSIS-Toolbox build system does not use the CMake compiler and linker flags specified by environment variables CFLAGS, LDFLAGS. Refer to the chapter Build Operation for further details of the build process.
The CMSIS-Toolbox is a set of command line tools that are designed for stand-alone usage and integration into IDEs or DevOps systems for Continuous Integration (CI) workflows.
The VS Code IDE integration available from Arm is a viewer to the csolution project files and provides graphical ways to modify the content. Refer to DevOps Usage for more information on integration into CI workflows.
The overall benefits of the CMSIS-Toolbox are:
- Flexible command line tools that can be used stand-alone or integrated into VS Code or DevOps systems for Continuous Integration (CI).
- Stand-alone tools are available for all host platforms (Windows, Mac, Linux) for flexible deployment.
- Software Packs simplify tool setup with
device:
orboard:
selection and project creation with access to reusable software components. - Organize solutions with projects that are independently managed simplifies a wide range of use cases including multi-processor applications or unit testing.
- Integrates with domain specific generators (i.e. CubeMX) that simplify configuration of devices/boards and complex software stacks such as motor control.
- Provisions for product lifecycle management (PLM) with versioned software packs that are easy to update and management for configuration files.
- Software layers enable code reuse across similar applications with a pre-configured set of source files and software components.
- Target types allow application deployment to different hardware (test board, production hardware, virtual hardware, etc.).
- Build types support software testing and verification (debug build, test build, release build, ect.).
- Support for multiple toolchains, even within the same set of project files and command line options to select different toolchains during verification.
- Linker Script Management utilizes device and board information to define the available memory and allows flexible control of the linker operation.
- Generator Support for utilizing tools such as CubeMX or MCUxpresso Config Tools to configure devices or software stacks.
- Uses a CMake backend for the build process that integrates with other tools such as VS Code intellisense.
Version | Description |
---|---|
2.5.0 | CMSIS-Toolbox 2.5.0; direct CMake interface is now default, tmpdir: controls location of interim files, adds add-asm-path: , adds regular expression search to for-context: /not-for-context , and contains several corrections. |
2.4.0 | CMSIS-Toolbox 2.4.0; adds CubeMX integration, pre/post-build steps when using the option --cbuild2cmake , simplifies the generator integration, and contains several corrections. |
2.3.0 | CMSIS-Toolbox 2.3.0 adds in the csolution project files component instances and optimize: debug. Tools are extended with cbuild setup command, --frozen-pack option. Refer to release information for more details. |
2.2.0 | CMSIS-Toolbox 2.2.0 adds generator integration, extends translation controls, adds context set, adds pack locking, and improves linker script management. Refer to release information for more details. |
2.0.0 | Initial release for CMSIS-Toolbox 2.0.0 |