发现一个问题,在boot的代码里面,最开始的8行异常向量表竟然是一样的
LDR pc, RESET_ENTRY
LDR pc, UNDEF_ENTRY
LDR pc, SWI_ENTRY
...
...
LDR pc, FIQ_ENTRY
发现最终的机器码竟然都是 E59FF038,总共8行,觉得不可思议
发现其反汇编得到的是
LDR pc,0x40
LDR pc,0x44
...
LDR pc,0x5C
对啊,反汇编的代码都不一样,为什么机器码是一样的呢?
最后跟一个师弟讨论,因为每条指令的地址不一样,load的pc也不一样,但是pc和当前地址的偏移地址是一样的。恩这就是真相。紧接下来
RESET_ENTRY DCD initial_target
UNDEF_ENTRY DCD UNDEF_Handler
。。。
FIQ_ENTRY DCD FIQ_Handler