我正在试验LPC2119中的ARM7TDMI-s并试图找出startup.s代码中的内容来理解向量中断系统。
我有这种好奇心,其中定义了Reset_Addr和SWI_Addr等标签,因为它们不在同一个文件中,也不在标题中。
; Exception Vectors
; Mapped to Address 0.
; Absolute addressing mode must be used.
; Dummy Handlers are implemented as infinite loops which can be modified.
Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr
LDR PC, DAbt_Addr
NOP ; Reserved Vector
; LDR PC, IRQ_Addr
LDR PC, [PC, #-0x0FF0] ; Vector from VicVectAddr
LDR PC, FIQ_Addr
Reset_Addr DCD Reset_Handler
Undef_Addr DCD Undef_Handler
SWI_Addr DCD SWI_Handler
PAbt_Addr DCD PAbt_Handler
DAbt_Addr DCD DAbt_Handler
DCD 0 ; Reserved Address
IRQ_Addr DCD IRQ_Handler
FIQ_Addr DCD FIQ_Handler
Undef_Handler B Undef_Handler
SWI_Handler B SWI_Handler
PAbt_Handler B PAbt_Handler
DAbt_Handler B DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler
感谢任何帮助。
感谢
答案 0 :(得分:2)
armasm
语法混淆了。Reset_Addr
是一个标签,只需将其名称放在第一列即可定义。即Reset_Addr
由以下人员定义: Reset_Addr DCD Reset_Handler
Undef_Addr
和SWI_Addr
也一样。