ARM Cortex-M0 and Cortex-M3 ICs from NXP and Energy Micro
Overview
1
Note: Most Cortex-M3 and M4 chips have bitbanding and MPU. The bit-banding option can be
added to the Cortex-M0 / M0+ using the Cortex-M
System Design Kit.[9]
OVERVIEW
1.3
Instruction sets
2.1
1.4
Chips
ARM deprecations
The ARM architecture for ARM Cortex-M series removed some features from older legacy cores:[6][7]
The 32-bit ARM instruction set is not included in
Cortex-M cores.
Endianness is chosen at silicon implementation in
Cortex-M cores. Legacy cores allowed on-the-y
changing of the data endian mode.
Co-processors aren't supported on Cortex-M cores.
3
3-stage pipeline.
Instruction sets:
Thumb (most), missing CBZ, CBNZ, IT.
Thumb-2 (some), only BL, DMB, DSB, ISB,
MRS, MSR.
32-bit hardware multiply with 32-bit result.
1 to 32 interrupts, plus NMI.
Silicon options:
3 Cortex-M0+
The Cortex-M0+ is an optimized superset of the CortexM0. The Cortex-M0+ has complete instruction set compatibility with the Cortex-M0 thus allowing one to use
The Cortex-M0 core is optimized for small silicon die size the same compiler and debug tools. The Cortex-M0+
pipeline was reduced from 3 to 2 stages, which lowers the
and use in the lowest price chips.
power usage. In addition to debug features in the existing
Key features of the Cortex-M0 core are:[1]
Cortex-M0, a silicon option can be added to the CortexM0+ called the Micro Trace Buer (MTB) which pro ARMv6-M architecture[6]
vides a simple instruction trace buer. The Cortex-M0+
Cortex-M0
4 CORTEX-M1
NXP LPC800, LPC11E6x, LPC11U6x
Silicon Labs/Energy Micro EFM32 Zero, Happy
STMicroelectronics STM32 L0
Smallest ARM microcontrollers are of the Cortex-M0+
type (as of 2014, smallest at 1.6 mm by 2 mm is Kinetis
KL03)[12]
4 Cortex-M1
ARMv6-M architecture[6]
ARMv6-M architecture[6]
3-stage pipeline.
Instruction sets:
3.1
Chips
4.1 Chips
Actel/Microsemi FPGAs
Altera FPGAs
Holtek HT32F52xxx
Xilinx FPGAs
5.1
Chips
5
Silicon options:
Optional Memory Protection Unit (MPU): 0 or 8 regions.
5.1 Chips
Holtek HT32F
Cortex-M3
(sys)
Notify driver
IVA-HD
(video sub-system)
Cortex-A9
(Host CPU)
Linux
ON Semiconductor Q32M210
Cortex-M3
(app)
Ducati MM
software
ISS
(image sub-system)
Cortex-M3
Wireless
CC2650
Toshiba TX03
The following chips have a Cortex-M3 as a secondary
core:
Apple A9 (Cortex-M3 as integrated M9 motion CoProcessor)
6 CORTEX-M4
1 to 240 interrupts, plus NMI.
12 cycle interrupt latency.
Integrated sleep modes.
Silicon options:
Optional Floating-Point Unit (FPU): singleprecision only IEEE-754 compliant. It is called the
FPv4-SP extension.
Optional Memory Protection Unit (MPU): 0 or 8 regions.
6.1 Chips
The following microcontrollers are based on the CortexM4 core:
Atmel SAM4L, SAM4N, SAM4S, SAM4N
Freescale/NXP Kinetis K, W2
The following microcontrollers are based on the CortexM4F (M4 + FPU) core:
Atmel SAM4C (dual core), SAM4E, SAMG
Cypress FM4
TI Stellaris Launchpad Board with LM4F120
Cortex-M4
Nordic nRF52
ARMv7E-M architecture[7]
Instruction sets:
Thumb (entire).
Thumb-2 (entire).
Toshiba TX04
7.1
Chips
7
Optional Tightly-Coupled Memory (TCM): 0 to 16
MB instruction-TCM, 0 to 16 MB data-TCM, each
with optional ECC.
Optional Memory Protection Unit (MPU): 8 or 16
regions.
Optional Embedded Trace Macrocell (ETM):
instruction-only, or instruction and data.
Optional Retention Mode (with ARM Power Management Kit) for Sleep Modes.
Cortex-M7
7.1 Chips
The Cortex-M7 is a high-performance core with almost double the power eciency of the older Cortex- The following microcontrollers are based on the CortexM4. It features a 6-stage superscalar pipeline with M7 core:
branch prediction and an optional oating-point unit capable of single-precision and optionally double-precision
Atmel SAME70, SAMS70, SAMV70
operations.[15][16] The instruction and data buses have
been enlarged to 64-bit wide over the previous 32-bit
Freescale/NXP Kinetis KV5x[17]
buses. If a core contains an FPU, it is known as a Cortex STMicroelectronics STM32 F7[18]
M7F, otherwise it is a Cortex-M7.
Key features of the Cortex-M7 core are:
ARMv7E-M architecture.
6-stage pipeline with branch speculation.
8 Development tools
Main article: List of ARM Cortex-M development tools
Instruction sets:
Thumb (entire).
Thumb-2 (entire).
9 Documentation
32-bit hardware multiply with 32-bit or 64-bit The amount of documentation for all ARM chips is
result, signed or unsigned, add or subtract after daunting, especially for newcomers. The documentation
the multiply.
for microcontrollers from past decades would easily be
inclusive in a single document, but as chips have evolved
32-bit hardware divide (2-12 cycles).
so has the documentation grown. The total documenta Saturation arithmetic support.
tion is especially hard to grasp for all ARM chips since
DSP extension: Single cycle 16/32-bit MAC, it consists of documents from the IC manufacturer and
single cycle dual 16-bit MAC, 8/16-bit SIMD documents from CPU core vendor (ARM Holdings).
arithmetic.
A typical top-down documentation tree is: manufacturer website, manufacturer marketing slides, manufac 1 to 240 interrupts, plus NMI.
turer datasheet for the exact physical chip, manufacturer
12 cycle interrupt latency.
detailed reference manual that describes common peripherals and aspects of a physical chip family, ARM core
Integrated sleep modes.
generic user guide, ARM core technical reference manual, ARM architecture reference manual that describes
the instruction set(s).
Silicon options:
Optional Floating-Point Unit (FPU): (single preci- Documentation tree (top to bottom)
sion) or (single and double-precision), both IEEE754-2008 compliant. It is called the FPv5 exten1. IC manufacturer website
sion.
2. IC manufacturer marketing slides
Optional CPU cache: 0 to 64 KB instruction-cache,
0 to 64 KB data-cache, each with optional ECC.
3. IC manufacturer datasheet
13
4. IC manufacturer reference manual
5. ARM core website
6. ARM core generic user guide
7. ARM core technical reference manual
8. ARM architecture reference manual
EXTERNAL LINKS
[13] Sadasivan, Shyam. An Introduction to the ARM CortexM3 Processor (PDF). ARM Holdings. Archived from
the original on July 26, 2014.
[14] The Samsung Exynos 7420 Deep Dive - Inside A Modern
14nm SoC. AnandTech. Retrieved 2015-06-15.
[15] Cortex-M7 Processor.
2014-09-24.
ARM Holdings.
Retrieved
IC manufacturers have additional documents, such as: [16] Press Release - ARM Supercharges MCU Market
with High Performance Cortex-M7 Processor; arm.com;
evaluation board user manuals, application notes, getting
September 24, 2014;
started guides, software library documents, errata, and
more. See External Links section for links to ocial [17] KV5x: Kinetis KV5x - 240 MHz, ARM CortexARM documents.
M7, Real-Time Control, Ethernet, Motor Control and
10
See also
11
References
12 Further reading
The Denitive Guide to the ARM Cortex-M0 and
Cortex-M0+ Processors; 2nd Edition; Joseph Yiu;
Newnes; 784 pages; 2015; ISBN 978-0128032770.
The Denitive Guide to the ARM Cortex-M3 and
Cortex-M4 Processors; 3rd Edition; Joseph Yiu;
Newnes; 600 pages; 2013; ISBN 978-0124080829.
Embedded Systems with ARM Cortex-M3 Microcontrollers in Assembly Language and C; 1st Edition; Yifeng Zhu; 542 pages; 2014; ISBN 9780982692622.
Digital Signal Processing and Applications Using the
ARM Cortex-M4; 1st Edition; Donald Reay; Wiley;
250 pages; 2014; ISBN 978-1118859049.
Embedded Systems: Introduction to Arm Cortex-M
Microcontrollers; 5th Edition; Jonathan Valvano;
506 pages; 2012; ISBN 978-1477508992.
Assembly Language Programming: ARM CortexM3; 1st Edition; Vincent Mahout; Wiley-ISTE; 256
pages; 2012; ISBN 978-1848213296.
An Introduction To Reverse Engineering for Beginners including ARM assembly; Dennis Yurichev;
online book.
ARM Architecture Fundamentals; YouTube.
13 External links
ARM Cortex-M ocial documents
9
ARM Cortex-M ocial website
ARM Cortex-M Software Interface Standard (CMSIS)
10
14
14
14.1
14.2
Images
File:ARM_Cortex-M0_and_M3_ICs_in_SMD_Packages.jpg Source:
https://upload.wikimedia.org/wikipedia/commons/3/3d/
ARM_Cortex-M0_and_M3_ICs_in_SMD_Packages.jpg License: CC BY-SA 3.0 Contributors: Own work Original artist: Viswesr
File:ArduinoDue_Front.jpg Source: https://upload.wikimedia.org/wikipedia/commons/3/36/ArduinoDue_Front.jpg License: CC BYSA 3.0 Contributors: http://arduino.cc/ Original artist: Arduino SA
File:Commons-logo.svg Source: https://upload.wikimedia.org/wikipedia/en/4/4a/Commons-logo.svg License: CC-BY-SA-3.0 Contributors: ? Original artist: ?
File:Energy_Micro_Woder_Gecko_STK_showing_EFM32WG990F256__(ARM_Cortex-M4F)_MCU.JPG
https://upload.wikimedia.org/wikipedia/commons/d/da/Energy_Micro_Woder_Gecko_STK_showing_EFM32WG990F256_
%28ARM_Cortex-M4F%29_MCU.JPG License: CC BY-SA 3.0 Contributors: Own work Original artist: Viswesr
Source:
14.3
Content license