Forum: Mikrocontroller und Digitale Elektronik Wie sind Thumb Instructions angeordnet?


von Felix C. (felix_c13)


Lesenswert?

Hallo allerseits

Ich wüsste gerne wie Thumb Code im Speicher angeordnet wird. Soll 
heissen:

Annahme, A - 16Bit weit, B - 32 Bit weit.

Sei nun folgendes Programm:

A - Word alligned z.B. bei 0x00
B
A

Ist nun B bei 0x02 oder 0x04?

Würde es gerne selber ausprobieren, habe aber zu schlechte Assembler 
Kenntnisse und gerade nicht das Vertrauen in mich herauszufinden, welche 
Instruktionen ich benutzen muss, damit sie sicher 32Bit weit sind.

Ein kurzes Beispiel wäre super!

Gruss

Felix

von Einer K. (Gast)


Lesenswert?

Das "riecht" nach ARM ...?!

Machen die Dokumentationen zu dem Prozessor keine Aussagen dazu?
Nein?
Dann würde ich einen andren Prozessor wählen.

von Kai S. (zigzeg)


Lesenswert?

Ich nehme an es geht Dir um Thumb2 Code, denn nur dieser kann sowohl 16 
als auch 32 bit Instruktionen gemischt enthalten!

In dem Beispiel wird Instruktion B nicht auf eine Word-Grenze aligniert, 
sie steht also an Adresse 0x2. Es geht ja darum gegenüber ARM code, der 
durchgängig 32 bit Instruktionen verwendet, Platz zu sparen.
Wäre jede 32 bit Instruktion aligniert, so gelingt das nur schwerlich!

ZigZeg

von Felix C. (felix_c13)


Lesenswert?

Ok, ja dachte ich auch, gut danke!!

von (prx) A. K. (prx)


Lesenswert?

Für Codeadressen ist bei Thumb2 ein Alignment auf Halbworte 
vorgeschrieben, unabhängig davon, ob die Befehle 2 oder 4 Bytes lang 
sind.

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.