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