如果希望bootloader在片内RAM运行的时候能够运行自定义异常处理程序,则需要将ldr 如
一、异常向量处理
1、 如果bootloader是在片内RAM中运行,你想在发生异常的时候,能够运行自定义的异常处理程序,需要将ldr pc,_undefinedinstruction等那部分指令拷贝到Exception Vector Table中,如下图
2、如果bootloader是在片外的DDR运行的时候,由于在DDR当中一般会启用MMU,也就是内存映射,在cp15协处理器里面开辟了一个VBAR寄存器,可以把程序开头的地址拷贝到VBAR中,当程序发生异常的时候就会跳转到VBAR指定的地址运行中断向量表。
二、用objdump反汇编查看uboot代码
1、先在uboot根目录下 make s5p_goni_config,之后再输入make
2、生成一系列文件
3、
4、技巧:用管道可以更方便看代码
三、start.S .c最终会生成.o文件,这些文件最终会链接成u-boot文件,u-boot文件包含很多调试信息,烧到板子的是u-boot.bin文件
四、
五、
代码运行经过三个步骤:取址、译码、执行
所以当运行某一行代码,pc指针已经指向当前位置+8的地方,超前两条指令
六、
七、
八、
九、
十、