CMSIS (Common Microcontroller Software Interface Standard) is organized into several categories of software components, tools, and specifications designed to simplify microcontroller development.
CMSIS Base Software Components
These provide software abstractions for basic device functionalities. They are maintained in the main Arm::CMSIS pack within the arm-software/cmsis_6 repository.
- CMSIS-Core: Standardized access to Arm Cortex processor cores.
- CMSIS-Driver: Generic peripheral driver interfaces for middleware.
- CMSIS-RTOS2: Common API for real-time operating systems.
CMSIS Extended Software Components
These implement specific functionalities optimized for Arm processors and are delivered as standalone CMSIS-Packs from separate repositories.
- CMSIS-DSP: Optimized compute functions for embedded systems.
- CMSIS-NN: Efficient and performant neural network kernels.
- CMSIS-View: Event Recorder and Component Viewer technology.
- CMSIS-Compiler: Retarget I/O functions of the standard C run-time library.
CMSIS Tools
Utilities for software development workflows.
- CMSIS-Toolbox: Command-line tools for working with software packs (uses CMake backend).
- CMSIS Solution: VS Code extension for managing CMSIS solutions.
- CMSIS Debugger: VS Code extension for debugging Arm Cortex-M devices.
- CMSIS-Stream: Tools for optimizing DSP/ML block data streams.
- CMSIS-DAP: Firmware for debug units interfacing to CoreSight Debug Access Ports.
- CMSIS-Zone: Methods to describe and partition system resources (processors, memory, peripherals).
CMSIS Specifications
- CMSIS-Pack: The delivery mechanism for software components and device/board support.
- CMSIS-SVD: Peripheral description of a device for debug views.