Forum: Mikrocontroller und Digitale Elektronik Lauft arm7 Code auf dem cortex-m3?


von Sandra n. (Gast)


Lesenswert?

Laut meinem Buch hier sollen alle arm Architekturen abwartskompatibel 
sein.
Gilt das auch für armv4 auf armv7?

von (prx) A. K. (prx)


Lesenswert?

Nein. Auf CM3 läuft nur Thumb2 Code, kein ARM Code.

von Sascha (Gast)


Lesenswert?

Hallo,
also den Assembler Code der im ARM-Mode geschrieben wurde kann man sehr 
leicht auf Cortex M3 übersetzen mit Ausnahme der bedingten Befehle, dazu 
benötigt der Cortex M3 dann seine IF Anweisung. Der Thumb-Code macht 
keine Probleme.
Der reine Binär-Code leuft nicht.
Aber das Problem dürfte eher an der Hardware liegen wie Interrupts usw.
Gruß Sascha

PS.das habe ich zu anfangs auch irgendwo mal gelesen......

von Alex (Gast)


Lesenswert?

> Auf CM3 läuft nur Thumb2 Code

Bremst das den uC nicht ziemlich aus ? Warum wird dann ständig 
herumpropagiert, dass der CM3 doch sooo viel besser ist, als ein arm7 ?

von (prx) A. K. (prx)


Lesenswert?

Alex schrieb:

> Bremst das den uC nicht ziemlich aus ? Warum wird dann ständig
> herumpropagiert, dass der CM3 doch sooo viel besser ist, als ein arm7 ?

Thumb-2 Code ist i.d.R. schneller als ARM-Code.

Thumb-2 ist sehr viel mehr als der alte Thumb Code aus ARM7TDMI. 
Praktisch alle Fähigkeiten der nativen ARM ISA sind in der Thumb-2 ISA 
ebenfalls enthalten, plus bisschen was das im ARM nicht so einfach geht.

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Sascha schrieb:
> also den Assembler Code der im ARM-Mode geschrieben wurde kann man sehr
> leicht auf Cortex M3 übersetzen mit Ausnahme der bedingten Befehle, dazu
> benötigt der Cortex M3 dann seine IF Anweisung.

...die ein UAL-compliant Assembler aber bei Bedarf selbständig erzeugt. 
siehe A4.2.1 im ARMv7-M ARM.

> Der Thumb-Code macht keine Probleme. Der reine Binär-Code leuft nicht.

Thumb Instruktionen sind binärkompatibel zu Thumb2. Wobei man darauf 
achten muss, dass der Code keine Besonderheiten des Kerns, bzw. 
Controllers verwendet.

Gruß
Marcus

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.