Prozessorfamilien

Gast #2741043
Lesenswert?

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
Persönliche Seite #2741104
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren