Najważniejsze różnice pomiędzy rdzeniami Cortex-M
Promotor rodziny Cortex – rdzeń Cortex-M3 – znalazł sobie poczesne miejsce na rynku i zapewne w niedługim czasie wyeliminuje większość swoich konkurentów. Rodzina Cortex-M składa się z kilku rdzeni o podobnej budowie, ale różnej funkcjonalności, wyposażeniu i możliwościach: począwszy od wersji mających konkurować z mikrokontrolerami 8-bitowymi, przez różne wersje 32-bitowych (łącznie z „miękką” wersją przystosowaną do implementacji FPGA), aż po wersje konkurujące z mikrokontrolerami i stałoprzecinkowymi procesorami DSP i DSC.
Rys. 1. „Obszary” rozkazów dekodowanych przez różne wersje rdzeni Cortex-M
Najważniejsze z punktu widzenia użytkownika różnice pomiędzy wersjami rdzeni Cortex-M polegają na liczbie rozkazów obsługiwanych przez CPU (rysunek powyżej), przy czym obowiązuje zasada, że rdzenie o wyższych numerach mają listy rozkazów poszerzonych o bardziej zaawansowane, ale obsługują wszystkie rozkazy rdzeni o numerach niższych. Przykładowo: rdzeń Cortex-M3 obsługuje wszystkie polecenia rdzeni Cortex-M0 i Cortex-M1 oraz wiele dodatkowych, a rdzeń Cortex-M4 obsługuje wszystkie rozkazy obsługiwane przez Cortex-M3 i wiele dodatkowych (zachowano kompatybilność „w dół”).
Rdzenie Cortex-M różnią się między sobą także parametrami czasowymi (przede wszystkim maksymalną częstotliwością taktowania) oraz elektrycznymi, które zazwyczaj są związane z zastosowaną technologią produkcji. Cechy te zależą od producentów konkretnych mikrokontrolerów.