CMSIS is an acronym for Cortex Microcontroller Software Interface Standard.
CMSIS is an abstract layer that supports developers and vendors in creating reusable software components for ARM Cortex-M based systems. This layer is useable for Cortex-M0,M0+, M1 M3/M4 layers as well.
A brief glance into Cortex-M0,M0+, M1, M3 and M4 architectures:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTTwm74s4i7zXU7ekNcJH-KK0hNcZaRHG0G6b-iOhwYOu1di9x1WyMWOv0C563b7DwusdPDHEvfzo2B4WnY5k8eyKooWOk1tZ-hwIvdiJbrj8AnCFqtupVuOBkTy1LsbguhJQtipJY3aI4/s1600/Capture.PNG)
Continuing further on CMSIS:
In order to reduce cost and software complexity and the fact that there are too rapid changes on the technology front, CMSIS provides a uniform hardware abstraction layer that governs the way we write and debug software by ensuring software re-useability.
CMSIS structure consists of three layers:
Functionality of each CMSIS layer:
Core Peripheral Access Layer: This layer is provided by ARM. The lowest level defines addresses, and access methods for common components and functionality that exists in every Cortex-M system. Access to core registers, NVIC, debug subsystem is provided by this layer.
CMSIS is an abstract layer that supports developers and vendors in creating reusable software components for ARM Cortex-M based systems. This layer is useable for Cortex-M0,M0+, M1 M3/M4 layers as well.
A brief glance into Cortex-M0,M0+, M1, M3 and M4 architectures:
- Cortex-M0: The ARM Cortex™-M0 processor is the smallest ARM processor available. The exceptionally small silicon area, low power and minimal code footprint of the processor enables developers to achieve 32-bit performance at an 8-bit price point.
- Supports 3-stage pipeline, thumb2, hardware-single-cycle (32x32) multiply hardware.
- Supports 1 NMI and 32 physical interrupts.
- Has only 56 instructions and has 'C-friendly' architecture.
- Cortex-M0+: The ARM Cortex™-M0+ processor is an adaption of Cortex-M0 but with more improved performance and reduced energy footprint.
- Supports 2-stage pipeline, thumb2, hardware-single-cycle(32x32) multiply hardware.
- Cortex-M1: The ARM Cortex™-M1 processor is the first ARM processor designed specifically for implementation in FPGAs.
- Supports 3-stage pipeline, thumb2 and big & little endian configuration.
- Cortex-M3: The ARM Cortex™-M3 processor is the industry-leading 32-bit processor for highly deterministic real-time applications, specifically developed to enable partners to develop high-performance low-cost platforms for a broad range of devices including microcontrollers, automotive body systems, industrial control systems and wireless networking and sensors.
- The Cortex-M3 NVIC is highly configurable at design time to deliver up to 240 system interrupts with individual priorities, dynamic reprioritization and integrated system clock.
- Supports 1 NMI and 240 physical interrupts with 8 to 256 level priorities.
- Supports hardware divide, single cycle-multiply and saturated math support.
- Cortex-M4: The ARM Cortex™-M4 processor is the latest embedded processor by ARM specifically developed to address digital signal control markets that demand an efficient, easy-to-use blend of control and signal processing capabilities.
- Supports 3-stage pipeline with branch prediction and thumb2.
- Supports hardware-divide, 8/16 bit SIMD arithmetic.
- Supports single precision floating point unit.
- Supports Memory protection unit and deterministic operations.
Continuing further on CMSIS:
In order to reduce cost and software complexity and the fact that there are too rapid changes on the technology front, CMSIS provides a uniform hardware abstraction layer that governs the way we write and debug software by ensuring software re-useability.
CMSIS structure consists of three layers:
- Core peripheral Access Layer (CPAL)
- Middleware Access Layer (MAL)
- Device peripheral Access Layer (DPAL)
CMSIS functional Flow (Courtesy: https://www.doulos.com) |
Functionality of each CMSIS layer:
Core Peripheral Access Layer: This layer is provided by ARM. The lowest level defines addresses, and access methods for common components and functionality that exists in every Cortex-M system. Access to core registers, NVIC, debug subsystem is provided by this layer.
Middleware Access Layer:This layer is defined by ARM, but is also adapted by silicon vendors for their respective devices.The Middleware Access Layer defines a common API for accessing peripherals.
Device Peripheral Access Layer:This layer is provided by the silicon vendor and contains the hardware register addresses and other device specific access functions.
No comments:
Post a Comment