The ARM7(TDMI) targeted small to medium-size microcontrollers. TDMI indicates support for an additional, 16 bit instruction set, called Thumb. The Thumb instruction set allows smaller application binary sizes at only marginally reduced performance. ARM7-based controllers are available from many manufacturers, for example NXP (LPC2000), Atmel (AT91SAM7*), ADI (ADUC7000), ST (STR7).
The Cortex-M4 is a Cortex-M3 with DSP Instructions, and optional floating-point unit (FPU).
ARM Cortex-M4-based controllers are available from:
- ST (STM32F3/F4)
- EnergyMicro (EFM32WG)
- Freescale (Kinetis)
- Infineon (XMC4000)
- NXP (LPC4300)
- Atmel (SAM4S)
- Texas Instruments (Stellaris LM4F)
The Cortex-M3 architecture was first announced in 2004. It can be seen as the successor of the ARM7, since it addresses the same market and fixes the shortcomings of the ARM7 architecture. It uses a new Thumb-2 instruction set exclusively and comes with standardized peripheral modules and a better (lower delay) interrupt system.
The Cortex-M0+ is an other new low power version of the M3.
There are Cortex-M0+ based controllers available from:
ARM Cortex-M0, Cortex-M1
The Cortex-M0 was announced in 2009 as an even smaller, lower power version of the M3.
The Cortex-M1 is a variant that is intended specifically for implementation inside FPGAs.
ARM9(E), ARM10, ARM11
The main differences to the ARM7 is that the ARM9 is using a Harvard architecture (separate buses for instruction and data) and a longer pipeline, which allows higher clock rates. ARM9-based processors usually have little internal memory (except for instruction and data caches) and are intended to be used with external memory, mostly SDRAM and parallel flash. The ARM9 core is offered in a lot of variants, with extensions like floating point co-processors or Java support. ARM9 applications typically use some kind of Operating System like Linux.
ARM10 and ARM11 are targeted to mobile applications and are generally not found in typical microcontroller applications.
An example for an ARM9-based microcontroller family is the Atmel AT91SAM9.
ARM Cortex-A8, Cortex-A9
The Cortex-A8 and Cortex-A9 cores are targeted to high-end mobile devices and are, for example, implemented in TI’s OMAP chip. They can be seen as the successor of the ARM9(E)/ARM10/ARM11.
The Cortex-A9 allows for multiple cores, hence these devices can be used in really high-end mobile devices or even netbooks (competing with low-power x86-architecture). Boardcon development board EM4412 features a Samsung Exynos4412 system-on-chip with four Cortex-A9 cores.
The Cortex-R4 is based on the ARMv7 architecture and is software-compatible with ARM9E family. With reduced gate count (to reduce the footprint), this core is targetting mid-range performance for so-called deeply embedded devices.