 | MDK-ARM Primer |  |
|
|
| CMSIS OverviewCortex Microcontroller Software Interface Standard (CMSIS) is developed by ARM in close co-operation with various silicon and software vendors and provides a common approach to interface to peripherals, real-time operating systems, and middleware components. CMSIS applies to Cortex-M processor-based devices. CMSIS defines the basic requirements to achieve software re-usability and portability. MCU vendors may include additional functions for each peripheral to enrich the features of their software solution. The aims of CMSIS are to: - Improve software portability and re-usability.
- Enable software solution suppliers to develop products that can work seamlessly with device libraries from various silicon vendors.
- Allow developers to write software quicker through an easy to use and standardized software interface.
- Allow embedded software to be used on multiple compiler products.
- Avoid device driver compatibility issues when using software solutions from multiple sources.
The area of standardization includes: - Hardware Abstraction Layer (HAL) for Cortex-M processor registers with standardized definitions for the SysTick, NVIC, System Control Block registers, MPU registers, and core access functions.
- Standardized system exception names to allow RTOS and middleware components to utilize system exceptions without having compatibility issues.
- Standardized methods to organize header files that makes it easy to learn new Cortex-M microcontroller products and improve software portability.
- Common methods for system initialization to be used by each MCU vendor. For example, the standardized SystemInit() function, provided in each device driver library, is essential for configuring the clock.
- Standardized intrinsic functions that are normally used to produce instructions that cannot be generated by IEC/ISO C. By having standardized intrinsic functions, software re-usability and portability is greatly improved.
- Standardized ways to determine the system clock frequency through a software variable, SystemFrequency, defined in the device driver. Allows RTOS to setup the SysTick unit based on the system clock frequency.
The following sections provide an introduction to the - CMSIS Organisation, which gives an overview of the CMSIS implementation layers (Core Peripheral Access Layer, Device Peripheral Access Layer, Access Functions for Peripherals Layer).
- CMSIS Usage, which describes the CMSIS implementation standards and access to the provided features and functions.
Note - onARM provides CMSIS documentation, examples, and information.
|
|