Základní informace
Procesor Cortex-M3 je první z řady procesorů ARM, které jsou založeny na architektuře ARMv7. Tato architektura je rozdělená do tří úrovní - profilů.
- Profil A (ARMv7-A) je určen pro komplexní aplikace a operační systémy jako je například Linux nebo Windows Embedded, které potřebují výkonný procesor, podporu virtuální paměti jednotkou správy paměti (MMU) a případně hardwarovou podporu aplikací napsaných v programovacím jazyku Java.
- Profil R (ARMv7-R) je určen především pro real-time systémy, které potřebují vysoký výpočetní výkon a krátkou dobu reakce.
- Profil M (ARMv7-M) je určen pro mikrokontroléry, kde je potřebný dostatečný výkon procesoru, rychlá odezva na přerušení, ale hlavním kritériem je nízká cena a spotřeba energie.
Mezi základní vlastnosti procesoru Cortex-M3 patří
- harvardská architektura, která umožnuje paralení čtení instrukce a čtení/uložení dat
- instrukční sada Thumb-2
- tříúrovňové zřetězení zpracování instrukcí (three-stage pipelining)
- dva provozní režimy provádění kódu (Handler, Thread)
- dvě úrovně přístupových práv (Privileged, User)
- dva provozní stavy (Thumb, Debug)
- deterministická reakce na přerušení
Předchozí řady procesorů ARM, například ARM7 a ARM9, jsou vybaveny dvěma instrukčními sadami, 32-bitovou instrukční sadou ARM a 16-bitovou Thumb. Některé části aplikace pro tyto procesory mohou být napsány pomocí ARM instrukcí, jiné části pomocí Thumb instrukcí. To umožňuje kombinovat požadavek na redukci velikosti kódu s potřebou výkonnějších instrukcí. Procesor se ale musí mezi oběma módy přepínat, což sebou nese určitou režii.
Procesor Cortex-M3 je postaven na nové sadě instrukcí Thumb-2, která je rozšířením původní instrukční sady Thumb. Sada Thumb-2 obsahuje jak 16-bitové tak 32-bitové instrukce, ale neobsahuje původní ARM instrukce. Cortex-M3 tedy není zpětně kompatibilní s předchozími ARM procesory. Nemusí ale přepínat mezi ARM a Thumb módy, aby mohl provádět 32 nebo 16-bitové instrukce.
Detaily architektury ARMv7-M jsou obsaženy v manuálu The ARMv7-M Architecture Application Level Reference Manual, informace specifické pro procesor Cortex-M3 naleznete v manuálu Cortex-M3 Technical Reference Manual. Dalším hodnotným zdrojem informací je manuál Cortex-M3 Devices Generic User Guide, aplikační poznámka Application Note 179 Cortex-M3 Embedded Software Development a v neposlední řadě kniha The Definitive Guide to the ARM Cortex-M3Lze objednat na Amazonu : http://www.amazon.com/Definitive-Guide-Cortex-M3-Second-Edition/dp/185617963X, jejímž autorem je Joseph Yiu. Referenční manuály, aplikační poznámky a řadu další dokumentů najdete na stránkách věnovaných procesoru Cortex-M3 na webu firmy ARMhttp://www.arm.com/products/processors/cortex-m/cortex-m3.php.
Často dochází k nejasnostem a záměně názvu procesoru s názvem architektury a naopak. Například populární procesor ARM7TDMI, který je jádrem mikrokontrolérů vyráběných řadou výrobců (NXP LPC2000, Atmel AT91SAM7) je postaven na architektuře ARMv4T. Historie procesorů ARM a jednotlivých architektur je přehledně uspořádána na stránkách Wikipediehttp://cs.wikipedia.org/wiki/ARM .