rpi uboot 2016的关键跳转点
来源:互联网 发布:园林设计效果图软件 编辑:程序博客网 时间:2024/06/17 14:10
VERSION = 2016
PATCHLEVEL = 11
SUBLEVEL =
EXTRAVERSION = -rc1
NAME =
1最开始的启动部分第一句代码从start.S移动到了vector.S。
arm/lib/vector.S line 48
_start:
b reset
直接跳到了cpu/arm1176/start.S
顺序执行到line 103
bl lowlevel_init
bl _main
其中lowlevel_init在arm/mach-bcm283x/lowlevel_init.S里面什么都没做。直接return
执行bl _main
_main 在arm/lib/crt0.S的line 67
执行到line 93 bl board_init_f
该函数在 common/board.c
主要是依次运行 init_sequence_f里面的函数,执行失败直接hang。rpi这个阶段执行的最后一个函数是setup_reloc
返回crt0.S中,执行到 line 121 b relocate_code 开始代码拷贝到ram
relocate_code 的代码在arm/lib/relocate.S
再执行完拷贝以后relocate.S的line 127 bx lr 直接跳转到拷贝后的代码的
crt0.S的127行。
bl relocate_vectors
从这一句开始。代码就在新的位置上执行了。
所以带符号调试uboot的时候。需要在relocate.S的line 127 bx lr 下一个断点
然后gbd执行添加符号到重定位的地址
symbol-file
add-symbol-file u-boot relocateaddr
继续crt0.S向下执行到 ldrpc, =board_init_r
跳转到common/board_r.c的board_init_r
board_init_r的执行基本和board_init_f的类似。同样是调用一个init_sequence_r数组内的函数。
一旦失败hang
依次执行init_sequence_r里面的函数。
如果默认没有进行过任何配置。最后执行到
run_main_loop。不再返回。
- rpi uboot 2016的关键跳转点
- Hibernate的关键点
- JDBC 的关键点!
- Location的关键点
- 计划的关键点
- rpi
- 理解RMI的关键点
- EJB的七个关键点
- WPF的几个关键点
- removeFromSuperview关键的几个点
- BaseAdapter 注意的关键点!
- Oracle安装的关键点
- NDK JNI 的关键点
- Java String的关键点
- web安全的关键点
- AVPlayer 的几个关键点
- Web安全的关键点
- sourceinsight破解的关键点
- python中的map、filter、reduce函数
- linux core文件开关、目录和名称的设置
- eclipse构建maven project 的web项目,勾选Create a simple project < =1= >
- mysql-5.7.16-winx64.zip安装教程
- 电压型传感器和电流型传感器的区别
- rpi uboot 2016的关键跳转点
- 鼠标经过更换内容
- 职场上,你是老虎、孔雀、考拉,还是猫头鹰?
- 集合划分问题
- RGBD-SLAM尝试——rgbd-slam-v2
- ios语音通讯解决方案 wav转amr
- 获取系统运行进程信息——PSAPI介绍使用
- UITextField前面空几格
- C#代码创建Xml文件