Prozessorfamilien

Gast #2741043
Guten Abend!

Ich bin ein Neuling und brauch ein wenig Klarheit.
1. Es gibt ja unterschiedliche Mikrocontrollerfamilien:
- 8051
- C16x
- ARM
Es gibt z. B. hunderte Hersteller, deren Mikrocontroller der Familie 
8051 angehört. Sind die Befehlssätze bei allen gleich oder kann es 
Abweichungen geben? In welchen Bereichen können sie sich noch 
unterscheiden?

2. Was ist denn der Zusammenhang zwischen ARM und CORTEX-M?
ARM und CORTEX-M sind doch jeweils zwei unterschiedliche 
Mikrocontrollerfamilien?

lg
Gast #2741047
>2. Was ist denn der Zusammenhang zwischen ARM und CORTEX-M?
>ARM und CORTEX-M sind doch jeweils zwei unterschiedliche
>Mikrocontrollerfamilien?

Nö, CORTEX-M ist definitiv ein ARM.
Persönliche Seite #2741104
Für Cortex-M* hat man die Befehlsatzschalterei zwischen ARMCode und 
Thumb-Code eingestampft und den Befehlssatz auf nur Thumb2 festgelegt.

ARMCode ist ein 32 Bit breiter Befehlssatz, der in einem Befehl mehr 
Verarbeitungsanweisungen zuläßt als Thumb-Code.
(z.B. zusätzliche Shift-Anweisungen)

Ursprünglich wurde der Thumb-Code der auf 16 Bit Breite festgelegt ist 
eingeführt um den Speicherverbrauch zu verkleinern.
Dafür wird man fast ausschliesslich auf die unteren 8 Register begrenzt 
und muß auf einige Befehle dann durch Rückschalten auf ARMCode 
zurückgreifen.

Für schnelle Ausführung wird der ARMCode für gewöhnlich benutzt. Für 
zeitunkritische Arbeit wird gern der ThumbCode eingesetzt.

Soweit ab ARMv4 bis ARMv6-Architektur.

Der Cortex-M ist eine ARMv7-Architektur und besitzt neben 16 bit breiten 
Befehlen auch 32 Bit breite Befehle und ermöglicht das Arbeiten mit 
allen 16 Registern. Es handelt sich um den Thumb2-Befehlssatz, der von 
den schwächen des alten Thumb-Befehssatzes bereinigt wurde.

Der Prozessor arbeitet ab Reset mit Thumb2 (bis ARMv6 ARMCode) und läßt 
auch kein Umschalten in den (nicht mehr vorhandenen) ARMCode zu.
Gast #2741127
Hi,

(Erstmal entschuldigt mir die neuen Beiträge, war unbeabsichtigt, bin 
neu hier im Forum.)

Heißt das, dass "ARMCode" und "ThumbCode" nur von ARMv4 bis
ARMv6-gelten. Und ab einschließlich ARMv7 gilt dann das
"Thumb2"-Befehlssatz?

lg
Persönliche Seite #2741182
Der Cortex-M selbst besitzt keine Implementierung des 
ARMCode-Befehlssatzes.
M0 und M1 sind Vertreter der ARMv6-Archtektur und M2-M4 ARMv7.
Auch in der ARMv7-Archtektur gibt es Prozessoren die ARMCode 
unterstützen z.B. Cortex-A* .
Im Befehlssatz der ARMv6-Cortex-M sind nicht alle Thumb2-Befehle und 
ausschliesslich 16 Bit lange Befehle implementiert.
Sorry das ich den M0 und M1 unterschlagen hab.
Vielleicht hätte ich eher dann von ARMv7-M schreiben sollen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.