Choosing a Processor for an Embedded Application

There are more than 3,500 catalogued Cortex-M devices you can choose from for your next embedded systems project. A large choice of feature sets, performance, power consumption, and price allows you to find the right part for your design. 

At the heart of all of these devices lies one of the 32-bit Arm Cortex-M processors, ranging from the smallest foot-print Cortex-M0, up to the highest performing Cortex-M7. Choosing the right processor for your embedded application can help you build an optimal system that is fit for purpose. This page is a good starting point to help you explore the key differences, and as well as the common features of all members of the Cortex-M family.

 

Cortex-M Series Comparison


Cortex-M0

Cortex-M0+

Cortex-M3

Cortex-M4

Cortex-M7

Cortex-M23

Cortex-M33

Cortex-M35P


Instruction set architecture

Armv6-M
Thumb, Thumb-2

Armv6-M
Thumb, Thumb-2

Armv7-M
Thumb, Thumb-2

Armv7-M
Thumb, Thumb-2,
DSP, FP (SP)

Armv7-M
Thumb, Thumb-2,
DSP, FP (1. SP or 2. SP+DP)

Armv8-M baseline
Thumb, Thumb-2


Armv8-M mainline
Thumb, Thumb-2,
DSP, FP (SP)

Armv8-M mainline Thumb, Thumb-2,
DSP, FP (SP)


DMIPS/MHz range*

0.87-1.27

0.95-1.36

1.25-1.89

1.25-1.95

2.14-3.23

0.98-in progress

1.50-in progress

in progress

CoreMark®/MHz**

2.33

2.46

3.34

3.42

5.01

2.50

3.86

in progress

Memory Protection Unit (MPU)

No

Yes (option)

Yes (option)

Yes (option)

Yes (option)

Yes (option)(2 x)

Yes (option)(2 x)

Yes (option)(2 x)

Trace (ETM or MTB)

No

MTB (option)

ETMv3 (option)

ETMv3 (option)

ETMv4 (option)

MTB (option) or ETMv3

MTB (option) and/or ETMv4

MTB (option) and/or ETMv4


DSP

No

No

No

Yes

Yes

No

Yes (option)

Yes (option)

Floating point hardware

No

No

No

Yes (option SP)

Yes (option) 1. SP or 2. SP+DP

No

Yes (option)

Yes (option)

Systick Timer

Yes (option)

Yes (option)

Yes

Yes

Yes

Yes (2 x)

Yes (2 x)

Yes (2 x)

CMSIS Support

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Built-in caches

No

No

No

No

Yes (option 4-64kB I- and D-cache)

No

No

Yes (option)

Tightly-coupled memory

No

No

No

No

Yes (option 0-16MB I-TCM/D-TCM)

No

No

No

TrustZone for Armv8-M

No

No

No

No 

No 

Yes (option)

Yes (option) 

Yes (option)

Co-processor interface

No 

No 

No 

No 

No 

No 

Yes (option)

Yes (option)

*The lower result abides by all of the “ground rules” laid out in the Dhrystone documentation  while the upper bound additionally permits simultaneous (”multi-file”) compilation.
**Cortex-M23 and Cortex-M33 results are preliminary. The others are published on the EEMBC website. 


How to choose your Arm Cortex-M Processor

We will take you through the options and configurations available to help you decide which Cortex-M processor is best suited to your needs. We will provide answers to following questions: How do you go about choosing the right processor for the task and code at hand? What features are needed for specific applications? Which configuration is best for certain solutions? How should one plan ahead for future design considerations?

Watch