初学者提问!关于arm中断向量表问题。

tntman 2008-01-23 10:31:51
cpu:at91rm9200

加载u-boot后,用ads来单步调试我的裸机程序,发现0x00000000地址如下:

00000000 [0xea000007] b 0x24
00000004 [0xeafffffe] b 0x4
00000008 [0xeafffffe] b 0x8
0000000c [0xeafffffe] b 0xc
00000010 [0xeafffffe] b 0x10
00000014 [0xeafffffe] b 0x14
00000018 [0xe51fff20] ldr pc,0xfffff100 ; = #0x00200218
0000001c [0xeafffffe] b 0x1c
00000020 [0x00105448] andeqs r5,r0,r8,asr #8
00000024 [0xe59f1130] ldr r1,0x0000015c ; = #0xfffffc00
00000028 [0xe3e00000] mvn r0,#0
0000002c [0xe5810064] str r0,[r1,#0x64]
00000030 [0xe3e00001] mvn r0,#1
00000034 [0xe5810004] str r0,[r1,#4]
00000038 [0xe3e00000] mvn r0,#0
0000003c [0xe5810014] str r0,[r1,#0x14]
00000040 [0xe3a00000] mov r0,#0
00000044 [0xe5810030] str r0,[r1,#0x30]
00000048 [0xe3a00001] mov r0,#1
0000004c [0xe5810000] str r0,[r1,#0]
00000050 [0xe59f0108] ldr r0,0x00000160 ; = #0x0000ff01

而0x20000000的内容如下:
__ENTRY [0xea000009] b InitReset
undefvec [0xeafffffe] b undefvec
swivec [0xe59ff010] ldr pc,SWI_Addr ; = #SWI_Addr
pabtvec [0xe59ff010] ldr pc,PrefetchAddr ; = #PrefetchAddr
dabtvec [0xe59ff010] ldr pc,DataAbortAddr ; = #DataAbortAddr
rsvdvec [0xeafffffe] b rsvdvec
irqvec [0xe51fff20] ldr pc,0x1ffff100 ; = #0xffffffff
fiqvec [0xeafffffe] b fiqvec
SWI_Addr [0x20007860] dcd 0x20007860 `x.
PrefetchAddr [0x200000e8] dcd 0x200000e8 ...
DataAbortAddr [0x200000ec] dcd 0x200000ec ...
InitReset [0xe59f10dc] ldr r1,0x20000110 ; = #0x20008514
20000030 [0xe3c11003] bic r1,r1,#3
20000034 [0xe1a0d001] mov r13,r1
20000038 [0xe59f00d4] ldr r0,0x20000114 ; = #0x2000448c
2000003c [0xe1a0e00f] mov r14,pc
20000040 [0xe12fff10] bx r0
20000044 [0xe28f004c] add r0,pc,#0x4c ; #0x20000098
20000048 [0xe890007e] ldmia r0,{r1-r6}
2000004c [0xe321f0d3] msr cpsr_c,#0xd3
20000050 [0xe3c11003] bic r1,r1,#3


按理说0x00000000地址的内容应该和0x20000000的内容相匹配才是,请问是哪里不对呢,我应该从哪里着手?
...全文
308 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧