引用 2 楼 dairyman000 的回复:
跳转发生在
ldr pc, _start_armboot
start_armboot 的值为TEXT_BASE加上start_armboot的实际偏移值。
完成代码拷贝后,start.S做了一些诸如开启MMU,设置堆栈,清除bss的工作后,就开始执行C语言函数start_armboot. 也正是在这里,完成了向SDRAM的跳转。
谢谢,回复
_start_armboot 里的值是_start,编译的时候_start代表值不是0x0000?如果编译的时候 _start =0x0000,那么运行ldr pc, _start_armboot时岂不是跳到0x0了?
希望高手指正