2010-05-12 19 views
8

Ich suche eine Baugruppe für den Start einiger Firmware, die auf einem ARM-Prozessor läuft. Die folgende Ausnahmevektortabelle ist definiert:ARM Assembly - Branch Instruction

LDR  pc, =resetHandler 
    LDR  pc, Undefined_Addr 
    LDR  pc, SWI_Addr 
    LDR  pc, Prefetch_Addr 
    LDR  pc, Abort_Addr 
    B  . 
    LDR  pc, =irqHandler 
    LDR  pc, FIQ_Addr 

Weiß jemand, was das "." nach der Verzweigung ("B") Befehl tut? Im Disassemblierungsfenster des Debuggers verzweigt der Befehl zu sich selbst. Laut Datenblatt ist der Eintrag reserviert, daher vermute ich, dass dies nur eine Endlosschleife ist und auf einen Watch-Dog-Reset wartet.

+2

So wie ein FYI, einige ARM-basierte Mikroprozessoren (oder besser gesagt ihre Flash-utilites und/oder Bootloader) verwenden, die reservierten Eintrag eine Prüfsumme zu halten: http://www.nxp.com/documents/application_note/AN10254.pdf –

Antwort

8

In vielen Assembler . bedeutet der aktuelle Standort-Zähler, also ja, es ist nur eine Endlosschleife, d. H. "Zweig zu hier".

[Bitte beachten Sie, dass einige Montierer verwenden $ oder * statt .]