⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 向量表.txt

📁 EASYARM2104/05/06编程示例及向量表
💻 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 + -