📄 向量表.txt
字号:
关于中断向量表中变量的定义(ARM7的LPC2104开发板)以下是中断向量表:
Vectors
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
ResetAddr DCD Reset
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler
请问:vectors这个标号是在什么地方调用的?是不是在头文件中定义为地址为0x00000000?一开机上电就执行这个的?
谢谢各位了!
0
dreamliner
注册 : 2006-1-3 16:18:58
发贴 :1
晶石:10★
2006年3月21日 vector这个标号没有用其实还不如这样编写:
CODE32
AREA Vect,CODE,READONLY
ENTRY
LDR PC, Reset_Addr
LDR PC, Undefined_Addr
LDR PC, SWI_Addr
LDR PC, Prefetch_Addr
LDR PC, DataAbort_Addr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
Reset_Addr DCD Reset_Handler
Undefined_Addr DCD Undefined_Handler
SWI_Addr DCD SWI_Handler
Prefetch_Addr DCD Prefetch_Handler
DataAbort_Addr DCD Abort_Handler
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler
ENTRY通知编译器不要把向量表去掉,因为实际的代码中并没有用到向量表。
ARM系统(绝大部分)起动时都是自动从地址零取出第一条指令,即 LDR PC, Reset_Addr
而Reset_Addr DCD Reset_Handler
所以自动跳转到Reset_Handler处执行,至于那个vectors标号,无用!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -