CMSIS is a vendor-independent hardware abstraction layer for the Cortex-M processor series/ It specifies debugger interfaces and standardises middleware interfaces and software delivery for microcontrollers using Cortex-M cores.
“It enables consistent software interfaces to the processor for interface peripherals, real-time operating systems, and middleware,” said ARM.
CMSIS v4 features a new CMSIS-Pack and CMSIS-Driver specification.
“CMSIS-Pack describes a delivery mechanism for software components, device parameters, and evaluation board support,” said ARM.
It specifies, with an XML-based package description (PDSC) file, the content of a file collection that includes:
Source code, header files, and software libraries
Documentation and source code templates
Device parameters along with start-up code and programing algorithms
The PDSC file is designed for software development environments and describes the user and device-relevant context for the files supplied within a CMSIS-Pack.
CMSIS-Driver specification is a software API describing peripheral driver interfaces for middleware stacks. A CMSIS-Driver connects a microcontroller peripheral with middleware that implements for example communication stacks, file systems, or graphic user interfaces.
“CMSIS-Drivers are RTOS independent and designed to be generic, making middleware reusable across the wide range of supported microcontroller devices,” claimed the firm.