|
我的环境:at91rm9200+28F128+dataflash
我运行仿真器时,程序执行起点是__ENTRY,地址是0x20000000,(1)请问这个地址是可变的吗?
1ffffff4 [0xffffffff] dci 0xffffffff ; ? undefined
1ffffff8 [0xffffffff] dci 0xffffffff ; ? undefined
1ffffffc [0xffffffff] dci 0xffffffff ; ? undefined
__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 ; = #0xfffcecec
fiqvec [0xeafffffe] b fiqvec
SWI_Addr [0x2000752c] dcd 0x2000752c ,u.
PrefetchAddr [0x200000e8] dcd 0x200000e8 ...
DataAbortAddr [0x200000ec] dcd 0x200000ec ...
InitReset [0xe59f10dc] ldr r1,0x20000110 ; = #0x200081e0
20000030 [0xe3c11003] bic r1,r1,#3
我执行到软中断后程序死在0x00000008:
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 ; = #0x00105260
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]
请问为什么呢?
|
|