https://developer.arm.com/tools-and-software/embedded/cmsis
2.1.6 The Cortex Microcontroller Software Interface Standard
ARM provides the Cortex Microcontroller Software Interface Standard (CMSIS)for programming Cortex-M0 microcontrollers.
The CMSIS is an integrated part of the device driver library.
The Cortex Microcontroller Software Interface Standard (CMSIS) simplifies software development by enabling the reuse of template code and the combination of CMSIS-compliant software components from various middleware vendors.
Vendors can expand the CMSIS to include their peripheral definitions and access functions for those peripherals.
For a Cortex-M0 microcontroller system, CMSIS defines:
• a common way to:
— access peripheral registers
— define exception vectors
• the names of:
— the registers of the core peripherals
— the core exception vectors
• a device-independent interface for RTOS kernels.
The CMSIS includes address definitions and data structures for the core peripherals in a Cortex-M0 processor. It also includes optional interfaces for middleware components comprising a TCP/IP stack and a Flash file system.
The CMSIS simplifies software development by enabling the reuse of template code, and the combination of CMSIS-compliant software components from various middleware vendors. Software vendors can expand the CMSIS to include their peripheral definitions and access functions for those peripherals.
This document includes the register names defined by the CMSIS, and gives short descriptions of the CMSIS functions that address the processor core and the core peripherals.
Note
This document uses the registershort names defined by the CMSIS. In a few cases these differ from the architectural short names that might be used in other documents.
The following sections give more information about the CMSIS:
• Power management programming hints on page 2-30
• Intrinsic functions on page 3-5
• Accessing the Cortex-M0 NVIC registers using CMSIS on page 4-3
• NVIC programming hints on page 4-9.