SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: What is ARM Cortex-M0+?
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

What is ARM Cortex-M0+?

Elijah Erickson
Last updated: September 7, 2023 12:05 pm
Elijah Erickson 8 Min Read
Share
SHARE

The ARM Cortex-M0+ is a 32-bit reduced instruction set computing (RISC) processor designed for microcontroller applications. It is one of the most energy-efficient processors in the Cortex-M series, making it ideal for battery-powered and constrained energy budget devices.

Contents
OverviewApplicationsArchitectureInstruction SetDevelopment ToolsVendor SupportComparison with Cortex-M0Conclusion

Overview

The Cortex-M0+ processor is based on the ARMv6-M architecture, which is a stripped down version of the ARM instruction set optimized for microcontrollers. It has a 3-stage pipeline, allowing for higher clock frequencies while keeping power consumption low. The Cortex-M0+ is an evolution of the earlier Cortex-M0 processor with improvements in energy efficiency, performance and features.

Some key features of the Cortex-M0+ processor include:

  • Maximum clock frequency of 50 MHz
  • Up to 256KB of flash memory and 32KB of SRAM
  • Single-cycle 32-bit multiply instructions
  • Low power sleep modes
  • Nested Vectored Interrupt Controller (NVIC)
  • Thumb-2 instruction set encoding
  • Serial Wire Debug (SWD) interface
  • Optional Memory Protection Unit (MPU)

The Cortex-M0+ is designed to deliver excellent performance per MHz, making it well suited for a wide range of low-power embedded applications. Its Thumb-2 instruction set provides high code density to reduce flash memory requirements. The NVIC enables low latency interrupt handling for real-time applications. Serial wire debugging provides efficiency during prototyping and development.

Applications

The Cortex-M0+ is targeted at various embedded applications including:

  • Internet of Things (IoT) edge devices
  • Wearables
  • Consumer electronics
  • Personal healthcare
  • Industrial automation
  • Home appliances
  • Toys
  • Smoke detectors

Its mix of low power consumption, good performance and small silicon footprint makes the Cortex-M0+ a popular choice for simple embedded microcontroller applications. ARM offers the processor as synthesizable IP cores to semiconductor companies who integrate it into their microcontroller products.

Architecture

The ARM Cortex-M0+ has a 32-bit RISC architecture based on the ARMv6-M instruction set. It has a 3-stage pipeline consisting of Fetch, Decode and Execute stages. Pipelining allows multiple instructions to be processed simultaneously leading to higher throughput.

Some key architectural features are:

  • Processor Core – 3-stage pipeline, 32-bit RISC architecture. Up to 50 MHz max clock speed.
  • Bus Interface – Advanced Microcontroller Bus Architecture (AMBA) 3 Advanced Peripheral Bus (APB) interface connects the core to memory and peripherals. Up to 50 MHz max bus speed.
  • Memory – Supports up to 256KB of flash memory and 32KB of SRAM on-chip memory.
  • Clocking – Internal oscillator or external clock source. Clock generation and distribution unit.
  • Interrupts – Nested Vectored Interrupt Controller (NVIC) with low latency exception handling.
  • Debug – ARM CoreSight debug architecture with Serial Wire Debug (SWD) and breakpoints.
  • Optional MPU – Memory Protection Unit for safety critical applications.
  • Power Management – Multiple low power modes including Sleep, Deep Sleep and Stop modes.

This architecture enables Cortex-M0+ based microcontrollers to achieve excellent performance per MHz while maintaining low power consumption critical for embedded applications.

Instruction Set

The Cortex-M0+ utilizes ARM’s Thumb-2 instruction set which is a highly optimized 32-bit RISC instruction set designed for embedded microcontroller applications. The Thumb-2 instruction set provides:

  • High code density to minimize flash usage
  • Simple pipeline design for low power and high efficiency
  • Optimized branching and conditional execution
  • Minimal data processing instructions for smaller silicon area
  • Load/store architecture with a single unified register file

Thumb-2 is an extension of the earlier 16-bit Thumb instruction set with additional 16-bit and 32-bit instructions. This allows it to deliver better performance while retaining high code density. Key features include:

  • 16-bit and 32-bit instruction support
  • Uniform register file with 13 general purpose registers
  • Load/store architecture with base + offset addressing
  • Conditional execution of many instructions
  • SIMD instructions and saturating arithmetic
  • Low overhead function calling
  • Flexible stack handling and link register

By combining both 16-bit and 32-bit instructions, Thumb-2 provides a good balance of code density and performance. The minimalist instruction set results in simpler hardware implementation and greater power efficiency in the Cortex-M0+.

Development Tools

The Cortex-M0+ processor can be programmed using standard embedded C/C++ development tools. ARM’s Keil MDK toolkit is a popular choice that includes the μVision IDE, ARM C/C++ compiler, debugger and software packs. The GNU toolchain with GCC compiler is also commonly used. Popular IDEs like IAR Embedded Workbench support development for Cortex-M0+ as well.

Debugging options include ARM’s CoreSight debug and trace technology along with Embedded Trace Macrocell (ETM) that outputs instruction trace information off-chip. The Serial Wire Debug (SWD) interface provides efficient Cortex debug capability. JTAG interface is also optionally supported.

ARM provides various code examples, driver libraries, documentation and other resources for Cortex-M0+ development. A number of Real-Time Operating Systems like FreeRTOS also support the Cortex-M0+ architecture. Various development boards featuring Cortex-M0+ MCUs are available to aid rapid prototyping and testing.

Vendor Support

The Cortex-M0+ processor is licensed by multiple semiconductor vendors and available in a range of microcontroller products targeting various embedded applications. Some popular vendors include:

  • NXP – LPC800, LPC1000 series
  • STMicroelectronics – STM32L0 series
  • Cypress – PSoC 4000S, PSoC 4100S
  • Silicon Labs – EFM32 Zero, Happy Gecko
  • NordicSemi – nRF51 series
  • Renesas – RL78 series
  • Microchip – SAM L10/L11

The wide vendor adoption makes Cortex-M0+ a popular choice in various market segments from consumer electronics to industrial applications. The availability of microcontrollers from multiple sources provides flexibility to select the right MCU for an application’s requirements.

Comparison with Cortex-M0

The Cortex-M0+ is an enhanced variant of the earlier Cortex-M0 processor targeting improved energy efficiency and performance. Some of the differences include:

  • Higher max clock frequency – 50 MHz vs 32 MHz
  • Single-cycle 32-bit multiplier vs multi-cycle multiplier
  • Additional power saving modes
  • Optional Memory Protection Unit (MPU)
  • Micro Trace Buffer (MTB) support for code profiling
  • Relaxation of Thumb interworking restrictions
  • Processor state preservation on exception entry
  • Faster interrupt handling and return

Overall, Cortex-M0+ addresses some of the limitations of Cortex-M0 to achieve better performance and lower power consumption. Existing Cortex-M0 designs can be relatively easily migrated to Cortex-M0+ to take advantage of its enhancements.

Conclusion

The ARM Cortex-M0+ offers an optimal combination of energy efficiency, performance and cost for basic microcontroller-based embedded applications. Its RISC architecture and Thumb-2 instruction set enable simple, low-cost and low-power implementations. An extensive ecosystem of development tools and vendor support makes designing with Cortex-M0+ accessible. With its capabilities matching the needs of IoT edge nodes and other power-constrained devices, the Cortex-M0+ will continue to be a popular choice for years to come.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article Why ARM Processors are Low Power?
Next Article What is ARM Cortex-M1?
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

End User Agreement Licence for the Cortex-M0 DesignStart Eval

The Cortex-M0 DesignStart Eval is an evaluation version of ARM's…

5 Min Read

NVIC Registers Explained – ISER, ICER, ISPR, ICPR

The NVIC (Nested Vectored Interrupt Controller) registers ISER, ICER, ISPR…

11 Min Read

Cortex M0 Returning from Interrupt

When an interrupt occurs on a Cortex M0 processor, the…

8 Min Read

M0 SDK Load Program From External SPI Flash

The M0 SDK provides a way to load programs from…

6 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account