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?
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.
Vorsicht Glatteis. Spezielle Maschinenregister eines M0 wird man beim M3 vergeblich suchen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.