Mikrocontroller mit einem Kern der Firma ARM finden in den letzten Jahren eine immer weitere Verbreitung. Es gibt heute kaum eine Anwendung, für die es nicht einen Controller mit einem ARM-Kern gibt. Einer der Gründe für die große Verbreitung dieser Controller ist, das es von dem ARM-Kern unterschiedliche Varianten gibt, die sich in der Rechenleistung  und der Anzahl der benötigten Gatter die Realisierung (->Herstellungskosten) unterscheiden. Allen ARM-Kernen ist gemein, dass es sich bei ihnen um 32-Bit Prozessoren handelt, die (zumindest bis vor kurzem) alle den selben Befehlsatz unterstützen.

Die wichtigsten "Classic" ARM-Kerne sind:

  • ARM-7
    Der kleinste ARM Kern, der häufig in Controllern mit integriertem Flashromspeicher eigesetzt wird, Arbeitsfrequenz meist zwischen 50 und 100MHz. Der Anwendungsbereich ist alles von der Waschmaschine bis zum Handy.
  • ARM-9
    Durch die Trennung des Daten und Befehlsbus im Kern und bessere Cache-Verfahren sind bei diesem Kern Arbeitsfrequenzen zwischen 200 und 500MHz möglich. Anwendungsbereiche: Smartphones, Systeme mit grafischer Benutzeroberfläche, u.v.m.
  • ARM-11
    Das Top-Model mit Arbeitsfrequenzen bis ca. 800MHz. Die Anwendungsbereiche überschneiden sich mit denen des ARM-9. Der auf dem Raspberry Pi eingesetzte SoC vom Typ BCM2835 arbeitet beispielsweise mit einem ARM11-Kern.

 

Wichtig ist zu erwähnen, das die Firma ARM nur die Kerne der Controller entwickelt und an andere Firmen lizensiert. D.h. die Firmen fügen zu dem ARM-Kern ihre eigene Peripherie hinzu und bringen diese Controller dann als Produkt auf den Markt. Firmen, die Mikrocontroller mit ARM-Kern produzieren sind z.B. ST, NXP, Atmel, TI, Toshiba & Samsung u.v.a. Durch die speziellen Peripheriemodule der Hersteller unterscheiden sich die Controller.  Im allgemeinen sind sie nicht direkt softwarekompatibel untereinander! Teilweise unterscheiden sich sogar die einzelnen Controller eines Herstellers softwareseitig untereinander, wie zum Beispiel die NXP LPC21xx und die NXP23xx-Serie mit ARM7-Kern. Da sich bei den "Classic"-ARM-Prozessoren auch die Interruptcontroller und Timermodule der einzelnen Bausteine unterscheiden, erfordert die Portierung eines Programms von einem Prozessor zu einem anderen teilweise einen relativ hohen Aufwand.

Hinzu kommt, dass jede Compiler-Suite für die "Classic"-ARM eigene Startup und Linker-Files benutzt. Das führt dazu, das auch der Wechsel zwischen ARM-Compilern komplizierter ist als eigentlich notwendig. Denn eigentlich sind die Aufgaben, die die Startup-Files übernehmen immer die gleichen.

Diese Probleme hat wahrscheinlich auch die Firma ARM festgestellt und die völlig neue ARMCortex-Familie herausgebracht. Die neuen ARMCortex-Prozessoren sind bezüglich der Rechenleistung pro Takt ca. doppelt so leistungsfähig, wie die alte Prozessorgeneration. Zusätzlich kann man das Design noch besser skalieren, so das die Hersteller eine sehr große Bandbreite an Controllern herstellen können. Mehr Info's zu den ARMCortex-Controller gibt es auf den weiteren Seiten.

Als Fazit zu Controllern mit ARM-"Classic"-Kern kann man sagen, dass diese Controller sehr leistungsfähig und flexibel einsetzbar sind. Das gleiche gilt im Allgemeinen auch für die Peripherie der Controller, die dadurch aber meist recht komplex zu programmieren ist. Deshalb ist die Lernkurve für Einsteiger oder Anfänger recht steil. Wer heute in die Welt der ARM-Controller einsteigt sollte sich direkt mit den ARMCortex-Controllern beschäftigen, denn diese Controller bieten viele Vorteile. Außerdem kann man davon ausgehen, dass die "Classic"-ARM Controller langsam aussterben. Z.B. führt die Firma ST die "Classic"-ARM-Typen bereits als Legacy-Typen.