PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cortex M3 Programcounter Adressen



Siro
10.06.2010, 11:22
Hallo zusammen,
ich arbeite mit der IAR Embedded Workbench und da ist mir eine Unstimmigkeit aufgefallen. Vermutlich habe ich wohl irgend etwas an der Prozessorarchitektur nicht verstanden.
Dazu habe ich mal einen Screenshoot angefügt.

Im Memory Fenster erscheint die Adresse B5 03 00 00 also die Adresse 0x03B5
Im Dissassembler Listing steht bei __iar_programm_start die Adresse 0x3B4
Im Mapfile steht bei __iar_programm_start die Adresse 0x000003B5

an welcher Adresse steht denn nun der Code ??

Danke im Voraus für Eure Bemühungen
Siro

flo315
10.06.2010, 22:56
Hallo

Lies einmal das Kapitel über die Interrupt vector table im Datenblatt durch. Das hilft dir glaubich weiter.

mfg

Siro
11.06.2010, 15:39
Diese Antwort hat mir nicht wirklich weitergeholfen....

Habe aber trotzdem eine Erklärung dafür gefunden:
Auf Seite 684 im Datenblatt UM10360 steht folgendes:

Remark: Bit[0] of any address you write to the PC with a BX, BLX, LDM, LDR, or POP instruction must be 1 for correct execution, because this bit indicates the required instruction set,
and the Cortex-M3 processor only supports Thumb instructions.

Deshalb werden in der Interrupt-Vectoren-Tabelle alle Adresesen +1 eingetragen.

mfg. Siro