关于bootloader在flash中存储地址的问题!
最近在看u-boot,有个问题一直不是很确定:
在cpu目录下面arm920t下的是start.S里面开始,下面的语句:
.globl _start
_start:b reset
ldrpc, _undefined_instruction
ldrpc, _software_interrupt
ldrpc, _prefetch_abort
ldrpc, _data_abort
ldrpc, _not_used
ldrpc, _irq
ldrpc, _fiq
想问的是:
硬件复位后,cpu直接从0x0地址读取指令,那么b reset这条指令对应的32位机器指令就存放在0x0的地址,这条机器指令里面包含了跳到reset:代码在flash中相应的存储的位置,而ldr pc, _undefined_instruction这条指令就放在存储器的0x04地址,其实并没有执行?
请问我的理解是对的吗?
我的硬件平台是s3c2410处理器,nand flash方式启动!
谢谢!
[解决办法]
你理解的很对,ldr所指向的中断的跳转地址
[解决办法]
yes,cpu会根据中断向量号自动跳转到对应的地址执行