Consistent System Startup and Peripheral Access
System startup, processor core access, and peripheral definitions are essential for every embedded application. The standardized CMSIS-CORE is implemented for over 3000 different devices and makes it easy to get started with a new device or migrate software across microcontrollers.
Refer to "Using CMSIS in Embedded Applications" for more information.
Deterministic Real-Time Software Execution
A super-loop concept is only adequate for simple embedded applications. Cortex-M microcontrollers are designed for real-time operating systems that give you resource and time control.
CMSIS-RTOS is an API that enables consistent software layers with middleware and library components. CMSIS-RTOS RTX runs on every Cortex-M device and is the proven reference implementation that is easy to learn and use.
Fast Implementation of Digital Signal Processing
Developing a real-time digital signal processing (DSP) system is not trivial as the DSP algorithms heavily rely on complex mathematical operations that are even time-critical.
CMSIS-DSP library is a rich collection of DSP functions that are optimized by ARM for the various Cortex-M processor cores. CMSIS-DSP is widely used in the industry and enables also optimized C code generation from MATLAB®. The ASN Filter Designer also generates CMSIS-DSP code that you can directly use in your application.
Generic Peripheral Interfaces for Middleware and Application Code
Interfacing microcontroller peripherals with middleware or generic application code can be challenging as each device is different. Ready-to use CMSIS-Driver interfaces are today available for many microcontroller families and avoid cumbersome and time consuming driver porting.
Refer to the CMSIS Workshop for more information.
Easy Access to Re-Usable Software Components
Previously, software modules were hard to integrate as the source and header files had unclear requirements, inconsistent documentation, or missing license information.
CMSIS-Pack solves these problems as it defines the structure of a Software Pack that contains software components. In the µVision IDE, these components can be easily selected and dependencies to other software are highlighted.
Consistent View to Device and Peripherals
The µVision Debugger offers for every supported microcontroller detailed views to the device peripherals which display the current register state.
These views are enabled by CMSIS-SVD files that are provided by the silicon vendors. These files ensure that the debugger view matches the actual implementation of the device peripherals.
Connectivity to Low-Cost Evaluation Hardware
Inexpensive development boards are available from many microcontroller vendors. Frequently, a low-cost debug unit is included, but different interfaces need a specific tool setup.
CMSIS-DAP is a standardized interface to the Cortex debug access port (DAP) and is used by many starter kits and supported by various debuggers. The µVision Debugger includes an easy-to-use CMSIS-DAP interface to support flash programming and run-control debugging.