Cortex-M refers to a family of 32-bit microcontroller cores designed by ARM to be optimized for low cost and power-sensitive embedded applications. The ‘M’ in Cortex-M stands for ‘Microcontroller’.
Background on ARM and Cortex Microcontrollers
ARM Holdings is a semiconductor IP company that licenses out processor designs and architectures to other companies. ARM CPU cores power the majority of smartphones and tablets globally. In addition to mobile applications, ARM CPU cores are also extensively used in embedded systems and IoT devices.
While ARM has RISC CPU cores optimized for mobile applications (like Cortex-A series), they also have cores specifically designed for use in microcontrollers meant for embedded and IoT applications. These microcontroller oriented ARM cores are part of the Cortex-M series.
The Cortex-M series is intended for deeply embedded, low-cost, low-power applications. The M in Cortex-M stands for microcontroller. The Cortex-M series scales from Cortex-M0 for simple, low-cost applications to Cortex-M7 for more complex applications requiring DSP capabilities.
Key Features of Cortex-M Cores
Here are some of the key features and design goals of the Cortex-M class of ARM CPU cores:
- Optimized for low-cost embedded applications
- Very small silicon footprint to minimize chip area and cost
- Low power consumption for battery operated devices
- Good real-time interrupt response
- Ease of use and low software overhead for programming
- Integrated memory protection unit for safety critical applications
- Scalable performance across different Cortex-M variants
Cortex-M Product Families
There are currently 4 product families under the Cortex-M series umbrella:
Cortex-M0/M0+
The Cortex-M0 and Cortex-M0+ are ARM’s lowest power and most compact 32-bit MCU cores. Cortex-M0 is for basic applications while M0+ added some enhancements.
Cortex-M3
The Cortex-M3 offers better performance than M0/M0+ while maintaining low power operation. It includes features like a memory protection unit and added DSP capabilities. Widely popular in many commercial chips.
Cortex-M4
The Cortex-M4 is similar to the M3 but includes a floating point unit for better math performance. It is geared for more complex embedded and IoT applications.
Cortex-M7
The Cortex-M7 represents ARM’s highest performance 32-bit MCU core. It features dual-issue pipelines, L1 caches, and optional SIMD support. The M7 is intended for demanding tasks including wireless, motor control, autonomous vehicles, and industrial apps.
Architectural Highlights of Cortex-M
Some of the key architectural aspects of the Cortex-M series include:
- Von Neumann architecture – Uses a unified memory address space for both code and data. Simpler and smaller than Harvard architecture.
- ARM Thumb instruction set – Uses 16-bit and 32-bit instruction lengths balancing code density and performance.
- NVIC – Nested Vectored Interrupt Controller provides low latency interrupt handling with priority levels.
- Bit banding – Provides atomic bit-level access to memory variables for control applications.
- Wakeup Interrupt Controller – Manages interrupt sources during deep sleep / low power modes.
- Memory Protection Unit – Hardened memory protection for safety critical applications in certain Cortex-M variants.
Companies Designing Cortex-M Based Microcontrollers
The Cortex-M CPU cores are licensed by ARM Holdings to many semiconductor companies that integrate the cores into their own microcontroller products. Some of the major vendors making Cortex-M based microcontrollers include:
- STMicroelectronics – STM32 series
- NXP – LPC series
- Microchip – SAM series
- Cypress – PSoC series
- Silicon Labs – EFM32 series
- Nuvoton – NUC100 series
- Toshiba – TX03 series
There are many other vendors with Cortex-M powered microcontrollers. The wide adoption of Cortex-M cores highlights their versatility in addressing the embedded application spectrum.
Cortex-M Use Cases and Applications
Here are some examples of products and applications powered by Cortex-M microcontrollers:
- Internet of Things devices
- Wearable electronics
- Smart home automation
- Industrial automation
- Alarm systems
- Medical devices
- Toys
- Drones
- Robotics
- Automotive electronics
In summary, the Cortex-M family of 32-bit microcontroller cores designed by ARM offer an optimized combination of performance, power efficiency, ease of use, and cost effectiveness. The scalability, configurability and wide industry adoption of Cortex-M makes it a compelling choice for low cost embedded applications.