- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iTop4412的的uboot第一阶段
2 uboot源码分析
2.5.1.start.S引入
2.5.1.start.S引入
、u-boot.lds中找到start.S入口
(1)在C语言中整个项目的入口就是main函数(这是C语言规定的),所以譬如说一个有10000个.c文件的项目,第一个要分析的文件就是包含了main函数的那个文件。
(2 方。ENTRY(_start)因此_start符号所在的文件就是整个程序的起始文件,_start所在处的代码就是整个程序的起始代码。
、SourceInsight中如何找到文件
(1)当前状况:我们知道在uboot中的1000多个文件中有一个符号叫_start,但是我们不知道这个符号在哪个文件中。这种情况下要查找一个符号在所有项目中文件中的引用,要使用SourceInsight的有哪些信誉好的足球投注网站功能。
(2)start.s 在cpu/arm_cortexa9/start.s
(3)然后进入start.S文件中,发现57行中就是_start标号的定义处,于是乎我们就找到了整个uboot的入口代码,就是第57行。
、SI中找文件技巧
(1)以上,找到了start.S文件,下面我们就从start.S文件开始分析uboot第一阶段。
(2)在SI中,如果我们知道我们要找的文件的名字,但是我们又不知道他在哪个目录下,我们要怎样找到并打开这个文件?方法是在SI中先打开右边的工程项目管理栏目,然后点击最左边那个(这个是以文件为单位来浏览的),然后在上面输入栏中输入要找的文件的名字。我们在输入的时候,SI在不断帮我们进行匹配,即使你不记得文件的全名只是大概记得名字,也能帮助你找到你要找的文件。
2.5.2.start.S解析1
、不简单的头文件包含
#include config.h。config.h是在include目录下的,这个文件不是源码中本身存在的文件,而是配置过程中自动生成的文件。这个文件的内容其实是包含了下面3个头文件
经过分析后,这3个头文件,这个文件是整个uboot移植时的配置文件。这里面是好多宏。因此这个头文件包含将这三个文件和start.S文件关联了起来。因此之后在分析start.S文件时,主要要考虑的就是include/configs/itop_4412_android.h文件。
(3)
#include version.h。include/version.h中包含了include/version_autogenerated.h,这个头文件就是配置过程中自动生成的。里面就一行内容:#define U_BOOT_VERSION U-Boot 2010.03。如下图所示。这里面定义的宏U_BOOT_VERSION的值是一个字符串,字符串中的版本号信息来自于Makefile中的配置值。
这个宏在程序中会被调用,在uboot启动过程中会串口打印出uboot的版本号,那个版本号信息就是从这来的。
在include/configs/itop_4412_android.h中定义了CONFIG_ENABLE_MMU
#include asm/proc/domain.h。asm目录不是uboot中的原生目录,uboot中本来是没有这个目录的。asm目录是配置时创建的一个符号链接,实际指向的是就是asm-arm(详解上一章节分析mkconfig脚本时).
(5)经过分析后发现,实际文件是:include/asm-arm/proc-armv/domain.h
(6)从这里可以看出之前配置时创建的符号链接的作用,如果没有这些符号链接则编译时根本通不过,因为找不到头文件。(所以uboot不能在windows的共享文件夹下配置编译,因为windows中没有符号链接)
思考:为什么start.S不直接包含asm-arm/proc-armv/domain.h,而要用asm/proc/domain.h。这样的设计主要是为了可移植性。因为如果直接包含,则start.S文件和CPU架构(和硬件)有关了,可移植性就差了。譬如我要把uboot移植到mips架构下,则start.S源代码中所有的头文件包含全部要修改。我们用了符号链接之后,则start.S中源代码不用改,只需要在具体的硬件移植时配置不同,创建的符号链接指向的不同,则可以具有可移植性。
2.5.3.start.S解析2
、启动代码的16字节头部
(1)在SD卡启动/Nand启动等整个镜像开头需要16字节的校验头。(mkv210image.c中就是为了计算这个校验头)。我们以前做裸机程序时根本没考虑这16字节校验头,因为:1、如果我们是usb启动直接下载的方式启动的则不需要16字节校验头(irom application note);2、如果是SD卡启动mkv210image.c中会给原镜像前加16
您可能关注的文档
- Git使用的教程.pdf
- Git本地服务器搭建 的代码管理.pdf
- F的ISHER阀门安装、调试及维护-天宏交流.pdf
- GMP的重点条款解读.ppt
- GIS局部放电在线监测系统及的校验技术.ppt
- GE APM及远的程监控和诊断系统2016.pptx
- GOOGLE分布式技术的研究.pptx
- Go语言高并发实战:构建千万级在线的实的时消息推送服务.ppt
- GM的AT数学讲义.pdf
- GPRS教材三(影响GPR的S系统的因素).ppt
- 水利设施管养人员考前冲刺测试卷附参考答案详解【精练】.docx
- 水利设施管养人员考前冲刺练习含完整答案详解(网校专用).docx
- 张家港乾景医疗科技有限公司高分子材料器具项目环评资料环境影响.docx
- 水利设施管养人员考前冲刺练习及参考答案详解【考试直接用】.docx
- 做账实操-合作社租赁非经济林的账务处理会计分录.pptx
- 水利设施管养人员考前冲刺测试卷附答案详解.docx
- 水利设施管养人员考前冲刺测试卷及答案详解(基础+提升).docx
- 2024-2025学年浙教版七年级科学下学期期末必刷常考题之物态变化.pdf
- 水利设施管养人员考前冲刺测试卷及答案详解(夺冠系列).docx
- 2025年中国酒吧凳数据监测研究报告.docx
最近下载
- 中信建投-保险行业深度报告:寿险行业财务分析与估值框架-250612-104页.pdf
- 全国手机号码段归属地数据(大型呼叫中心使用-准确率100%).xlsx VIP
- 【智利】建筑工程抗震规范(英文原版).pdf
- 【基于价值链的企业成本控制研究的国内外文献综述4800字】.docx VIP
- 我国海关进出口商品分类目录.pdf VIP
- 基于价值链的企业成本控制研究.doc VIP
- 职业健康安全培训课件.pptx VIP
- 科普急救知识——海姆立克急救法(内容全)精品课件.pptx VIP
- 2024《基于价值链的企业成本管理研究国内外文献综述》6800字.docx VIP
- 城市污水处理中的人工智能技术应用及其效能分析.docx VIP
文档评论(0)