SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: What is ARM Cortex M0 processor?
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 processor?

Graham Kruk
Last updated: October 5, 2023 9:58 am
Graham Kruk 6 Min Read
Share
SHARE

The ARM Cortex-M0 processor 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 and is intended for use in embedded systems that require minimal power consumption, such as wearable devices, sensors, small Internet of Things (IoT) nodes, and other battery-powered applications.

Contents
Key Features of Cortex-M0 ProcessorArchitecturePerformanceUse CasesDevelopment Tools and SoftwareVendor ImplementationsConclusion

Key Features of Cortex-M0 Processor

Some of the key features of the Cortex-M0 processor are:

  • 32-bit RISC architecture with Thumb-2 instruction set
  • Up to 48MHz clock frequency
  • As low as 9.2 CoreMark/MHz efficiency performance
  • Single-cycle GPIO for fast IO operations
  • Nested Vectored Interrupt Controller (NVIC)
  • Wake up interrupt controller (WIC)
  • Memory Protection Unit (MPU)
  • ARMv6-M Thumb instruction set
  • 3-stage pipeline
  • Serial Wire Debug (SWD) interface
  • Serial Wire Viewer (SWV) trace support
  • Integrated sleep modes and wake up interrupt controller
  • As low as 30 μA/MHz current consumption in active mode

Architecture

The Cortex-M0 processor has a 32-bit RISC architecture built on the ARMv6-M architecture profile. It uses the Thumb-2 instruction set which provides a balance between code size and performance. The Thumb-2 instruction set has both 16-bit and 32-bit instructions to optimize code density without compromising performance.

The CPU core has a 3-stage pipeline – Fetch, Decode and Execute. This enables efficient execution of instructions. It has an integrated nested vectored interrupt controller (NVIC) to handle interrupts and exceptions in an efficient manner. The NVIC allows low latency exception and interrupt handling.

For debug operation, Cortex-M0 supports ARM’s Serial Wire Debug (SWD) interface and Serial Wire Viewer (SWV) for trace. This enables non-intrusive debugging of the software program flow. Breakpoints and watchpoints are supported for debugging.

The processor contains several power saving features such as an integrated sleep mode with automatic wake up using aWake Up Interrupt Controller (WIC). This enables the system to conserve power when idle. Dynamic voltage scaling and clock gating techniques are employed to minimize power consumption.

Performance

The Cortex-M0 processor is designed as an ultra low power processor with efficient execution performance. It can achieve up to 48 MHz max clock frequency in a TSMC 90nm process node. The reported max Dhrystone 2.1 MIPS performance is 25 DMIPS at 1.25V and 39 DMIPS at 1.8V while consuming only 30μA/MHz of active current.

According to ARM, the Cortex-M0 processor can execute 9.2 CoreMark/MHz. The CoreMark benchmark measures the overall CPU performance. So at max clock frequency, it can achieve up to 442 CoreMark score.

The high code density Thumb-2 instruction set results in excellent performance per MHz. The single cycle fast I/O allows 50MHz GPIO toggle rates. With just 27,000 gates the Cortex-M0 processor delivers significant performance in a small silicon footprint.

Use Cases

The Cortex-M0 processor is designed for embedded applications requiring minimal power consumption. Its high code density and low power features make it well suited for following applications:

  • Internet of Things (IoT) devices
  • Wearable electronics
  • Sensor hubs
  • Industrial automation
  • Medical devices
  • Motor control
  • Home appliances
  • Low power radio technologies like Bluetooth Low Energy, Zigbee etc.

The Cortex-M0 can be used in cost-sensitive and size constrained embedded applications like wireless sensors, fitness bands, smart watches, wireless mice/keyboards and other battery operated IoT endpoints. Its low power sleep modes allow these devices to operate for years on small batteries.

Development Tools and Software

ARM offers a complete ecosystem for Cortex-M0 processor based development. This includes:

  • Cortex Microcontroller Software Interface Standard (CMSIS) for simplified software development across multiple vendors.
  • Compiler toolchains for ARM GCC, IAR and Keil MDK.
  • Debug probes for programming and debugging.
  • Simulators for model based development.
  • Evaluation boards to prototype Cortex-M0 based designs.
  • OS support such as FreeRTOS, Micrium uC/OS, Amazon FreeRTOS etc.
  • Extensive documentation and training material.

The Cortex Microcontroller Software Interface Standard (CMSIS) provides a common software framework across multiple Cortex-M vendors. It enables easy software re-use and portability across different microcontroller platforms. CMSIS compliant device support packs are available from various silicon vendors.

The Cortex-M0 processor can be programmed using GCC, IAR or Keil toolchains. Debug probes like Jlink, Ulink2, ST-Link and JTAG-ICE are used for programming flash memory and debugging. ARM offers HDK evaluation boards for early software development.

Vendor Implementations

The Cortex-M0 processor is a synthesizable CPU IP core which is licensed to various semiconductor vendors. It is available in different variants like Cortex-M0+, M0+BE (big-endian) etc. Some of the popular vendor implementations are:

  • Microchip SAMD21 Cortex-M0+ based MCUs
  • NXP LPC11Cxx Cortex-M0 based MCUs
  • STM32 F0 series Cortex-M0 based MCUs
  • TI MSP430FRxx FRAM MCUs with Cortex-M0+ core
  • Silicon Labs EFM32 Cortex-M0+ based MCUs
  • Cypress PSoC4000S Cortex-M0+ based MCUs

These microcontrollers are available in different memory sizes, peripherals and packages. So designers have the flexibility to choose the appropriate Cortex-M0 based MCU for their application needs.

Conclusion

The Cortex-M0 processor delivers an optimal combination of low power, performance and small silicon area. Its power saving features and tiny gate count makes it well suited for size and power constrained embedded devices. The availability of a complete ecosystem enables faster time-to-market for Cortex-M0 based designs.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article What is the assembly level language of ARM?
Next Article What is the difference between ARM Cortex-M0 and M3?
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

Is bare metal low level code?

Bare metal code refers to programs that run directly on…

8 Min Read

Arm Cortex M4 Errata

The Arm Cortex-M4 processor is a popular 32-bit microcontroller core…

6 Min Read

Understanding Code Generation Issues with GNU-ARM for Cortex-M0/M1

When using the GNU-ARM toolchain to compile code for Cortex-M0/M1…

6 Min Read

Missing BSP/hardware files causing Vitis Cortex-M1 project creation failures

When creating new projects in Vitis IDE for Cortex-M1 processors,…

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

Sign in to your account