Forum: Mikrocontroller und Digitale Elektronik Thumb ARMv6 Untermenge von ARMv7?


von ich (Gast)


Lesenswert?

Hallo zusammen,

der Titel sollte die Frage schon ganz gut beschreiben. Ggf. hier etwas 
präziser. Ist der 16bit bzw. 32bit Thumb Code der ARMv6-M Architektur 
eine Untermenge der ARMv7-M Architektur? Oder anders gefragt, ist der 
Befehlssatz 100% aufwärts kompatibel?

von Christopher J. (christopher_j23)


Lesenswert?

Ja, das ist der Fall. Desweiteren sind die Cortex-M - zumindest bis M7 
und exklusive irgendwelcher Erweiterungen, z.B. FPU - grundsätzlich 
abwärtskompatibel, d.h. M0-Code läuft auf M0+, M0+-Code läuft auf M3, 
M3-Code läuft auf M4 und M4-Code läuft auf M7.

von ... (Gast)


Lesenswert?

Vorsicht Glatteis.
Spezielle Maschinenregister eines M0 wird man beim M3 vergeblich suchen.

von Michael F. (Firma: IAR Systems) (michael_iar)


Lesenswert?

Laut der Tech-Note von Arm sollte der Thumb Befehlssatz von ARMv6-M, 
ARMv7-M und ARMv8-M aufwärtskompatibel sein, wobei der Cortex-M23 wegen 
seinem Baseline-Profil eine gewisse Sonderstellung einnimmt:

https://community.arm.com/cfs-file/__key/communityserver-discussions-components-files/469/Whitepaper-_2D00_-ARMv8_2D00_M-Architecture-Technical-Overview.pdf

Hier auch noch mal ein Überblick, was bei welchem Cortex-M vorhanden 
sein sollte:
https://en.wikipedia.org/wiki/ARM_Cortex-M#Instruction_sets

Gruß,
Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.