Cortex-M0+ Processor

The ARM® Cortex®-M0+ processor is the most energy efficient ARM processor available. It builds on the very successful Cortex-M0 processor, retaining full instruction set and tool compatibility, while further reducing energy consumption and increasing performance. Along with the Cortex-M0 processor, the exceptionally small silicon area, low power and minimal code footprint of these processors enable developers to achieve 32-bit performance at an 8-bit price point, bypassing the step to 16-bit devices. The Cortex-M0+ processor comes with a wide selection of options to provide flexible development.

Find out more...

The most energy-efficient ARM processor

An optimized architecture with a core pipeline of just two stages, enables the Cortex-M0+ processor to achieve a power consumption of just 9.8µW/MHz (90LP process, minimal configuration), while raising the performance to 2.42 CoreMark/MHz.

Simplicity

The Cortex-M0+ processor keeps the same 56 instructions of the Cortex-M0 processor, enabling simple and quick development. The Thumb® instruction set offers an unrivaled code-density while providing access to 32-bit computation performance. The combination of these features make the Cortex-M0+ processor a natural and cost effective successor to 8/16-bit devices in a wide variety of applications, while retaining tool and binary upwards compatibility with the feature-rich Cortex-M3 and Cortex-M4 processors.

Versatility

Each application is different and has its specific needs. To enable our Partners to design solutions fitting the widest range of applications, the Cortex-M0+ processor offers a wide choice of options. Many of these, such as the Memory Protection Unit and the re-locatable vector-table, are common to the Cortex-M3 and Cortex-M4 processors; others are specifically for this new processor, namely the single-cycle I/O interface for faster control and the Micro Trace Buffer for enhanced debug.

** The first result abides by all of the “ground rules” laid out in the Dhrystone documentation, the second permits inlining of functions, not just the permitted C string libraries, while the third additionally permits simultaneous (”multi-file”) compilation. All are with the original (K&R) v2.1 of Dhrystone

ARM Cortex-M0+ Implementation Data***

180ULL (7-track, typical 1.8v, 25C)

90LP (7-track, typical 1.2v, 25C)

40LP (9-track, typical 1.1v, 25C)

Dynamic Power

47.4 µW/MHz

9.37µW/MHz

3.8 µW/MHz

Floorplanned Area

0.098 mm2

0.028 mm2

0.0066 mm2

*** Base usable configuration includes 1 IRQ + NMI, excludes debug

ARM Cortex-M Technologies

The Cortex-M processors are based on a range of ARM technologies that make them extremely popular and successful.

ARM Cortex-M Code Size Advantage Explained

ARM Cortex-M processors offer superior code density compared to 8-bit and 16-bit architectures. This has significant advantages in terms of reduced memory requirements and maximizing the usage of precious on-chip Flash memory. In this section we examine the reasons for this advantage.

Instruction width

It is a common misconception that 8-bit microcontrollers use 8-bit instructions and ARM Cortex-M processor-based microcontrollers use 32-bit instructions. In reality for example, the PIC18 and PIC16 instruction sizes are 16-bit and 14-bit respectively. For the 8051 architecture, although some instructions are 1 byte long, many others are 2 or 3 bytes long. The same also applies to 16-bit architectures, where some instructions can take 6 or more bytes of memory.

The ARM Cortex-M processors utilize the ARM Thumb®-2 technology which provides excellent code density. With Thumb-2 technology, the Cortex-M processors support a fundamental base of 16-bit Thumb instructions, extended to include more powerful 32-bit instructions. In many cases a C compiler will use the 16-bit version of the instruction unless the operation can be carried out more efficiently using a 32-bit version.

Instruction efficiency

This picture is not complete without also considering that ARM Cortex-M processor instructions are more powerful. There are many circumstances where a single Thumb instruction equates to several 8/16-bit microcontroller instructions; this means that Cortex-M devices have smaller code and achieve the same task at lower bus speed.

Comparing 16-bit Multiply Operations Across Processor Architectures

8-bit example

16-bit example

ARM Cortex-M

MOV A, XL ; 2 bytes

MOV B, YL ; 3 bytes

MUL AB; 1 byte

MOV R0, A; 1 byte

MOV R1, B; 3 bytes

MOV A, XL ; 2 bytes

MOV B, YH ; 3 bytes

MUL AB; 1 byte

ADD A, R1; 1 byte

MOV R1, A; 1 byte

MOV A, B ; 2 bytes

ADDC A, #0 ; 2 bytes

MOV R2, A; 1 byte

MOV A, XH ; 2 bytes

MOV B, YL ; 3 bytes

MUL AB; 1 byte

ADD A, R1; 1 byte

MOV R1, A; 1 byte

MOV A, B ; 2 bytes

ADDC A, R2 ; 1 bytes

MOV R2, A; 1 byte

MOV A, XH ; 2 bytes

MOV B, YH ; 3 bytes

MUL AB; 1 byte

ADD A, R2; 1 byte

MOV R2, A; 1 byte

MOV A, B ; 2 bytes

ADDC A, #0 ; 2 bytes

MOV R3, A; 1 byte

MOV R4,&0130h

MOV R5,&0138h

MOV SumLo,R6

MOV SumHi,R7

(Operands are moved to and from a memory mapped hardware multiply unit)

Compact Data Footprint

It is important to note that Cortex-M processors have support for 8-bit and 16-bit data transfers, making efficient use of data memory. This means programmers can continue to use the same data-types as they have in 8/16-bit targeted software.

Energy Efficiency Advantage

The demand for ever lower-cost products with increasing connectivity (e.g. USB, Bluetooth, IEEE 802.15) and sophisticated analog sensors (e.g. accelerometers, touch screens) has resulted in the need to integrate analog devices more tightly with digital functionality to pre-process and communicate data. Most 8-bit devices do not offer the performance to sustain these tasks without significant increases in clock frequency and therefore power, meaning embedded developers are required to look for alternative devices with more advanced processor technology. The 16-bit devices have previously been used to address energy efficiency concerns in microcontroller applications. However, the relative performance inefficiencies of 16-bit devices mean they will generally require a longer active duty cycle or higher clock frequency to accomplish the same task as a 32-bit device.

Ease of Software Development

Software development for ARM Cortex processor-based microcontrollers can be much easier than for 8-bit microcontroller products. Not only is the Cortex processor fully C programmable, it also comes with various enhanced debug features to help locating problems in software. There are also plenty of examples and tutorials on the internet, including many from ARM processor-based MCU vendor's websites, alongside any additional resources included in MCU development kits.

ARM Cortex-M processors benefit from the widest third-party tools, RTOS, middleware support of any architecture. In this section you will find useful documentation, white papers and tutorials on ARM Cortex-M processors and related technologies. For further information including information on development tools, software, boards, CMSIS and mBed, visit the ARM Embedded Microsite.

Cookies

Cookie settings

We may collect and store information about your visit to our web site automatically using browser cookies (files which are sent by us to your computer) or similar devices which we can access when you visit our web site in future.
Please read our Cookie Policy to find out more about the cookies we use.

You can control the cookies set by this website by using the slider below, and by saving your settings.
These settings only apply to the ARM Website you are currently visiting and any changes you make will not apply to any other ARM websites.

We cannot turn off cookies which fall under the strictly necessary category, as these are essential in order to enable you to move around the website and use its features.
Please read our Cookie Policy to find out how to control these using your browser settings.

Third parties may also use cookies over which we have no control.
These cookies are likely to be performance cookies or targeting cookies.
Please read our Cookie Policy to find out how to control these using your browser settings.