1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好。我最近在学习U-Boot(版本为2013-05),但是在分析源码的时候,有一个疑惑。
U-boot的两个阶段(生成MLO和u-boot.img)是公用一个start.S的,但是在start.S中有这样一段代码: #ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_cp15 bl cpu_init_crit #endif 而在include/configs/am335x_evm,.h中有这样的定义: #ifndef CONFIG_SPL_BUILD #define CONFIG_SKIP_LOWLEVEL_INIT #endif 照理来说,cpu_init_cp15、 cpu_init_crit在第一阶段(SPL)会编译,而第二阶段不参与编译。 但是我编译成功后分别参考了spl下的u-boot-spl.map和顶层目录的u-boot.map(当然我这里是没指定O=的) 发现两个map文件都执行了cpu_init_cp15这个函数,我猜想可能在某个地方定义这个宏,但是我用egrep 找的时候没找到答案。主要是这个疑惑,希望了解的人可以解答一下,谢谢。 |
|
相关推荐
6个回答
|
|
|
|
|
|
CONFIG_SPL_BUILD这个宏在编译SPL的时候define了,可以参考uboot/spl/目录下的makefile。 而在编译u-boot的时候,CONFIG_SPL_BUILD这个宏没有define,在am335x_evm.h中就会define CONFIG_SKIP_LOWLEVEL_INIT,因此对于U-boot,start.s中的这段代码: #ifndef CONFIG_SKIP_LOWLEVEL_INIT bl cpu_init_cp15 bl cpu_init_crit #endif 表明在u-boot下cpu_init_cp15()和cpu_init_crit()这两个函数都不会被调用执行。 |
|
|
|
344868615qq 发表于 2018-6-21 16:36 谢谢回复。我本来也是这样想的,但是看编译好的u-boot.map中确实编译了cpu_init_cp15这个函数,这也是我不解的。顺道问一下U-Boot进入board_init_r进行各个初始化之后,最后调用main_loop(),但是在main_loop()实现中我一直找不到引导内核的函数?能否告知下?谢谢。 |
|
|
|
QAjqq 发表于 2018-6-21 16:51 编译了不等于运行了。 关于uboot,我建议可以一边读代码,一边参考 http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/16735.aspx 进行调试看看。 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
jvwueurw 发表于 2018-6-21 17:04 你好,谢谢回复。.map文件不是根据.bin或者.img生成的吗?当我们执行这两者的时候,不是就执行了吗?可能我对这个的认识是错的。这份文档我之前看过了,但 是我手上也没有JTAG,学生仔。对了,我又衍生了一个问题。我看了am335x的数据手册第26章初始化这一章,当系统上电的时候(我的开发板是从eMMC或SD启 动),会先执行ROM的代码,而ROM会拷贝MLO到内部的SRAM执行, 手册说image header(这里指MLO吧)会说明拷贝到哪以及拷贝镜像的大小,我也看到了, 比如该头部会说明下载到哪个地址,比如0x402F_0400,还有image大小,这里我就有一个疑惑,是只拷贝MLO,还拷贝MLO和u-boot.img一部分(两个都拷贝肯 定不行,SRAM没那么大),这个拷贝大小是在链接文件里说明的吗,请问是哪个链接文件? |
|
|
|
QAjqq 发表于 2018-6-21 17:21 1. map文件不是执行的,只是一个index,表明了函数的入口,有入口,不代表会执行。 2. 你可以考虑买个第一代的beaglebone,也不贵,而且这个板子本身就带有xds100v2的仿真器。 3. 关于你问的MLO和uboot的问题,你可以上我们的wiki上看看uboot的文档。 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
只有小组成员才能发言,加入小组>>
334 浏览 1 评论
528 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
773 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
649 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1126 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
126浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
251浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
200浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
56浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 22:36 , Processed in 0.971381 second(s), Total 88, Slave 72 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号