back

by Tomte·11y ago·view on hn ↗
There are several Cortex chips.

Cortex A (with rather high numbers) are relatively high performance chips, commonly found in one board computers, something like the BeagleBoard.

Cortex M are microcontrollers for embedded usage, slower clocks, but geared towards periphery like CAN, SPI, I2C etc. You can find a lot of those in industrial use.

Cortex R are less common, I think they are geared towards automotive, for real-time stuff, although -M is also used for that.

Above all those sit those big ARM9/ARM11 chips.

Within the M family there are 0 for relatively tiny footprint, 1 is special (synthesized into your FPGA), 3 is the "normal" one, and 4 has DSP capabilities and a bit more performance.

4 comments
Some more info:

A stands for application. These chips are full featured processors which are runnning big operating systems (e.g. Linux)

M is microcontroller. These are running either with no operating system or with a lightweight realtime operating system (e.g. freertos)

R is realtime. These are probably the most niche controllers and are used for things with realtime constraints. Besides automotive safety you can also find them used as SSD controllers.

What makes a chip realtime? I thought that was more a feature of the code running on a chip than of the chip itself (for 'normal' designs)

The only feature I can think of there is 'no support for demand-paged virtual memory', but even that isn't strictly needed for a real-time system.

The official Cortex-R page lists three main items:

    - Fast, bounded and deterministic interrupt response
    - Tightly Coupled Memories (TCM) local to the processor for fast-responding
      code/data
    - Low-Latency Interrupt Mode (LLIM) to accelerate interrupt entry
I haven't cross-compared the relevant features to the Cortex-M cores, but the M cores are certainly more common and definitely perform well too.
Great explanation, but I feel you totally missed out on the hilarity angle.

There are three varieties of ARM cores: A, R and M. See what they did, there? :)

And there's the M0+, which is the newest in the M0 family.

The M0+ has 2/3 the dynamic power consumption of the M0, some nice features of the M3 and M4, fewer Flash accesses (which lowers the power even more), and better debugging.

Basically, if you are looking for the ultimate in low power, choose an M0+.

The Atmel D21 on the Zero is an M0+, and Atmel has just released an L21, which is an even lower power M0+.

Ok, so even though this is using a "tiny footprint" ARM processor, it's still more powerful than the Atmel microcontrollers used in most other Arduino-branded products.
Absolutely, the AVRs have a huge hobbyist community, but they have really aged.

I can see why people who are well-versed in AVRs and their tool chain stick to it, but everyone starting today won't find them compelling.

ARM9/ARM11 were replaced by the Cortex-A series cores (contain an MMU, external RAM required, runs full OSes like Linux or WinCE)