我用开发板自带的一个程序Debug 调试,然后AXD 提示:
Warnning! interrupt vectors data is not correct!
Program you downloaded can not run freely!
我不知道其中中断向量的地址是如何算出来的,也就是说程序中的异常向量所指向的位
置我不清楚.我买的《ARM 微控制器基础与实战》中提到这儿有一句话解释了下面的程
序:在保留的异常向量位置填数据0xb9205f80,是为了使向量表中所有的数据32 位累
加和为0.(没明白,0xb9205f80 是如何计算出来的!)
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
提问时间:2009-11-6 10:05:16
| 1楼 | 时间:2009-11-6 10:10:38 |
| 从mem 窗口看这些地址是什么数(32 位方式),然后加起来. | |
我也来回答:





