Loading AI tools
Familie von IP-Cores Aus Wikipedia, der freien Enzyklopädie
Arm Cortex-M (in älterer Schreibweise ARM Cortex-M) ist eine Familie von IP-Cores primär für 32-Bit-Mikrocontroller, die vom Unternehmen ARM entwickelt wird und an verschiedene Hersteller lizenziert wird. Der Kern stellt eine Reduced Instruction Set Computer (RISC) dar, ist ein Teil der ARMv6- bzw. Armv7-Architektur[1] und unterteilt sich in aufsteigender Komplexität in die Einheiten Cortex-M0,[2] Cortex-M0+,[3] Cortex-M1,[4] Cortex-M3,[5] Cortex-M4[6], Cortex-M7 und die auf der Armv8-Architektur basierenden Cortex-M23,[7] und Cortex-M33.[8]
ARM Limited stellt selbst keine Mikroprozessoren bzw. Microcontroller her, sondern lizenziert den Kern an Hersteller und Chipproduzenten, sogenannte integrated device manufacturers (IDM), welche den eigentlichen ARM-Kern um eigene und herstellerspezifische Peripherie wie z. B. Controller Area Network (CAN), Local Interconnect Network (LIN), Universal Serial Bus (USB), I²C-Bus, Serial Peripheral Interface (SPI), Serielle Schnittstellen, Ethernet-Schnittstellen, Pulsweitenmodulation-Ausgänge, Analog-Digital-Wandler, Universal Asynchronous Receiver Transmitter (UART) und viele weitere erweitern. Diese Einheiten werden über den Advanced Microcontroller Bus Architecture (AMBA) an den ARM-Kern angeschlossen. ARM Limited bietet für den Kern verschiedene Lizenzmodelle an, welche sich in den Kosten und Umfang der zur Verfügung gestellten Daten unterscheiden. In allen Fällen wird das Recht gewährt, eigene Hardware mit ARM-Prozessoren frei vertreiben zu dürfen.
Die „Arm Cortex-M“-Prozessoren sind für den Lizenznehmer als IP-Core in der Hardwarebeschreibungssprache Verilog verfügbar und können mittels Logiksynthese als digitale Hardwareschaltung abgebildet werden, um dann entweder in Field Programmable Gate Arrays (FPGAs) oder Anwendungsspezifische integrierte Schaltungen (ASICs) eingesetzt zu werden. Je nach Lizenzmodell ist entweder die Verwendung des IP-Core gestattet (IP-Core Lizenz) oder aber es kann eine vollkommen neue, eigene Mikroarchitektur entwickelt werden, die die ISA von ARM implementiert (Architektur-Lizenz). Bei Besitz beider Lizenzen ist auch das Erweitern und Verändern der IP-Cores möglich. Vorteile der Architekturlizenz sind, dass für Hersteller neben der Integration eigener Peripherie auch andere Erweiterungen wie eigene Maschinenbefehle, Integration spezieller Debugschnittstellen oder aufgrund einer eigenen Architektur eine Optimierung für einen bestimmten Einsatzzweck (wie beispielsweise Mobilgeräte) möglich werden.
Die Prozessoren Cortex-M0 und M1 basieren auf einer ARMv6-M Architektur,[9] die Cortex-M3 auf einer Armv7-M Architektur,[10] und die Cortex-M4 sowie Cortex-M7 auf einer Armv7E-M Architektur.[10] Die Unterschiede betreffen primär den Befehlssatz und die zur Verfügung stehenden Maschinenbefehle. Die Linien sind so festgelegt, dass die binären Maschinenbefehle aufwärts kompatibel sind, das heißt, ein Maschinenprogramm von einem Cortex-M0 oder M1 ist ohne Veränderung auch auf einem Cortex-M3, M4 oder M7 lauffähig. Umgekehrt können nicht alle Befehle des Cortex-M3, M4 oder M7 auf der Cortex-M0 oder M1 ausgeführt werden.[9][10]
Alle Prozessoren aus der Cortex-M-Familie unterstützen die Basisbefehle aus dem so genannten Thumb-Befehlssatz, dem Thumb-2-Befehlssatz, und bieten zusätzlich eine Multipliziereinheit in Hardware. M0 und M1 fehlen allerdings im Thumb-Befehlssatz neuere Erweiterungen wie die Befehle CBZ, CBNZ und IT, welche erst in der später entwickelten Armv7-M-Architektur verfügbar sind. Und der Thumb-2-Befehlssatz ist auf einige wenige Befehle wie BL, DMB, DSB, ISB, MRS und MSR limitiert.[9][10] Die Einschränkungen bei M0 und M1 sind Folge der Vorgabe, die Chipfläche möglichst klein zu halten.
Cortex-M3, mit größerer Chipfläche, umfasst den vollständigen Thumb- und Thumb-2-Befehlssatz, bietet darüber hinaus einige spezielle Instruktionen, eine eigene Divisionseinheit in Hardware und kann mathematische Befehle wie Addition statt mit Überlauf auch mit Sättigung behandeln, was insbesondere im Bereich der Signalverarbeitung von Bedeutung ist. Cortex-M4 erweitert diese Möglichkeiten um einige spezielle Befehle, wie sie bei digitalen Signalprozessoren (DSP) üblich sind, und bietet optional eine Gleitkommaeinheit für die Bearbeitung von Gleitkommazahlen nach der Norm IEEE 754 für einfache Genauigkeit.[9][10] Der Cortex-M7 erweitert die Gleitkommaeinheit für die Bearbeitung von Gleitkommazahlen für doppelte Genauigkeit.[11]
ARM Cortex-M | Thumb | Thumb-2 | Zyklen Hardware- Multiplizierer | Hardware- Dividierer | DSP- Erweite- rung | Sättigungs- arithmetik | Gleit- komma- einheit | Trust Zone | ARM- Architektur |
---|---|---|---|---|---|---|---|---|---|
Cortex-M0 | größten- teils | Subset | 1 oder 32 | nein | nein | nein | nein | nein | ARMv6-M[9] |
Cortex-M1 | 3 oder 33 | nein | nein | nein | nein | nein | ARMv6-M[9] | ||
Cortex-M3 | komplett | komplett | 1 | ja | nein | teil- weise | nein | nein | Armv7-M[10] |
Cortex-M4 | 1 | ja | ja | ja | optional | nein | Armv7E-M[10] | ||
Cortex-M7 | 1 | ja | ja | ja | optional | nein | Armv7E-M[10] | ||
Cortex-M23 | 1 oder 32 | ja | nein | nein | nein | ja | Armv8-M Baseline[12] | ||
Cortex-M33 | 1 | ja | ja | ja | optional | ja | Armv8-M[12] |
Die meisten Cortex-M3 und -M4-Chips bieten Bit-Banding. Dies bedeutet, dass bestimmte Bits im Speicher auf eine eigene Word-Adresse gemappt und dadurch einfacher angesprochen werden können. Es ist nicht zu verwechseln mit Bit-Banging. Ob die Funktion aber auf einer konkreten Cortex-M-Implementierung tatsächlich vorhanden ist, sollte im Einzelfall geprüft werden.[13]
Besonderheiten des Cortex-M0 sind:
Unter anderem bieten folgende Halbleiterhersteller Cortex-M0 basierende Mikrocontroller an:
Besonderheiten des Cortex-M0+ sind:
Unter anderem bieten folgende Halbleiterhersteller Cortex-M0+ basierende Mikrocontroller an:
Besonderheiten des Cortex-M1 sind:
Unter anderem bieten folgende Halbleiterhersteller von Field Programmable Gate Array (FPGA) sogenannte Soft-Cores für ihre Logikbausteine an:
Besonderheiten des Cortex-M3 sind:[5]
Unter anderem bieten folgende Halbleiterhersteller Cortex-M3 basierende Mikrocontroller an:
Im Aufbau entspricht der Cortex-M4 einem M3, welcher um spezielle DSP-Befehle und optional eine Gleitkommaeinheit erweitert ist. Cortex-M4 mit Gleitkommaeinheit wird als Cortex-M4F bezeichnet. Besonderheiten des Cortex-M4 sind:[6]
Unter anderem bieten folgende Halbleiterhersteller Cortex-M4 basierende Mikrocontroller an:
Im Vergleich zum Cortex-M4 wurde der M7 mit einer längeren Dual-Issue-Pipeline für höhere Taktfrequenzen, einem neu konzipierten Speichersystem u. a. mit L1-Caches und TCMs, einer Verdoppelung der DSP-Performance gegenüber dem M4 und einem optionalen Lockstep ausgestattet. Besonderheiten des Cortex-M7 sind:[11]
Bislang bieten nur wenige Hersteller Cortex-M7 basierende Mikrocontroller an:
Als integrierte Entwicklungsumgebungen steht unter anderen die GNU Toolchain mit Eclipse zur Verfügung. Daneben gibt es noch verschiedene kommerzielle Angebote beispielsweise von IAR oder Keil. Als Betriebssysteme können unter anderem Echtzeitbetriebssysteme wie embOS,[23] FreeRTOS, OpenRTOS, SafeRTOS oder SCIOPTA[24] verwendet werden. Auf Prozessoren mit externem Speicherinterface ist es auch möglich, µClinux auszuführen. Als Debugger für die JTAG-Schnittstelle sind unter anderem der GNU Debugger in Verbindung mit OpenOCD für die Hardwareanbindung verfügbar.
Die Dokumentation ist sehr umfangreich. Insbesondere sind die Kernfunktionen der Cortex-M-Familie in den Unterlagen von ARM beschrieben und für alle Implementierungen identisch. Die diversen konkreten Hardwareimplementierungen und herstellerspezifische Erweiterungen sind hingegen in den jeweiligen Herstellerunterlagen beschrieben.
Cortex-M-Serie | ARM-Website | ARM-Core | Arm-Architektur |
---|---|---|---|
M0 | M0 | Cortex™-M0 Revision: r0p0 - Technical Reference Manual (PDF; 472 kB) | ARMv6-M |
M0+ | M0+ | Cortex-M0+ Revision: r0p1 Technical Reference Manual (PDF; 427 kB) | ARMv6-M |
M1 | M1 | Cortex™-M1 Revision: r1p0 - Technical Reference Manual (PDF; 943 kB) | ARMv6-M |
M3 | M3 | Cortex™-M3 Revision: r2p1 - Technical Reference Manual (PDF; 889 kB) Cortex™-M3 Revision: r1p1 - Technical Reference Manual (PDF; 2,1 MB) | Armv7-M |
M4 | M4 | Cortex®-M4 Revision: r0p1 - Technical Reference Manual (PDF; 813 kB) Cortex™-M4 Technical Reference Manual ARM DDI 0439B Errata 01 (PDF; 121 kB) | Armv7E-M |
M7 | M7 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.