完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
有了前一天装载u-boot-spl.axf并进行调试的基础,可以追求一些自由:如果把
u-boot-spl中初始化代码直接加到裸程序中不就可以减少一些调试上的环节,明 了底层操作的细节就会有知情权,不再会被工具左右。 装载以后,我们是用run启动运行的,我们知道u-boot-spl被装载到0xffff0000 的片内ram中,而run隐含了启动地址,为什么不可以直接在某个入口直接启动呢 ? 我经常不按常规出牌,在装载以后,cpu进入stopped状态,直接修改程序指 针PC为:0XFFFF0000,呵呵,很奇妙的芝麻开门,调试指针指向了start.S。 调试窗口中自动打开了start.S: .globl _start _start: b reset ... 这就对了,这里就是万里长征的起点。按F6(step),就可以开始了第一条汇编 就是b reset,ok,有兴趣的可逐条解读汇编代码,也可以F6信马由缰的浏览下 去,好在汇编代码不多,一直到board_init_f,这是一个C函数 (arch/ARM/lib/spl.c)。在board_init_f中调用board_init_r函数。 board_init_r(comm/spl/spl.c)中是spl中至关重要的工作,可畏步步惊心,是 系统启动的核心。。。。。。 比较重要的调用有:timer_init(); spl_board_init(); spl_board_init中完成了包括ddr3内存在内的外设的初始化。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
4027 浏览 0 评论
4433 浏览 1 评论
4475 浏览 0 评论
7475 浏览 8 评论
3849 浏览 1 评论
752浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:14 , Processed in 0.607426 second(s), Total 74, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号