Standards for Embedded Microcontrollers
by Reinhard Keil, ARM
Typically, industries use standards to improve product quality and enable component sharing across projects. In practice, such standards achieve wide acceptance since the synergistic effects provide significant benefits to the user community. The hardware and software industry is full of such standards, but there is an exception: the deeply embedded microcontroller market is still using many proprietary CPU architectures which prevents the introduction of efficient software standards.
Today, the ARM Cortex microcontroller architecture is available as the ARM Cortex-M1 processor (for FPGA) and the ARM Cortex-M3 processor (for silicon implementation). These processors have been widely licensed by more than 25 semiconductor manufacturers and three vendors are currently shipping devices. The Cortex microcontrollers have the attributes of a modern MCU including 32-bit performance, large linear address range, fast interrupt handling, low-power consumption and extensive debug capabilities. The devices are offered at attractive prices and therefore compete with traditional 8-bit microcontrollers. For the first time, the embedded microcontroller industry has the ability to standardize on a single hardware platform.
Creating software is seen as one of the major costs in the embedded industry. Standardizing the software interfaces across all Cortex silicon vendor products has the potential to reduce this cost significantly, especially when creating projects for new devices or migrating existing software to a Cortex processor-based microcontroller from other vendors.
Embedded developers traditionally reuse in-house code as code from external sources is often incompatible. To achieve a consistent software platform, ARM and several key silicon and software vendors including Amtel, IAR, KEIL, Luminary Micro, Micrium, NXP, SEGGER and STMicroelectornics, created the Cortex Microcontroller Software Interface Standard (CMSIS) which enables silicon vendors and middleware providers to create software that can be easily integrated. It is also an easy-to-use and easy-to-learn programming interface for Cortex processor-based devices.
CMSIS is a vendor-independent hardware abstraction layer (figure 1) for the Cortex-M series of processors that provides a common approach to interface peripherals, real-time operating systems, and middleware components. The standard is scalable to ensure that it is suitable for all Cortex-M series processor microcontrollers from the smallest 8KB device up to devices with sophisticated communication peripherals such as Ethernet or USB-OTG.
CMSIS is an open software standard that may be used by everyone in the industry. The key partners involved in the development have already announced CMSIS compliant software components for release in Spring 2009.