- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
U-Boot的编译、连接过程
配置完后,执行“make all”即可编译,从Makefile中可以了解U-Boot使用了哪些文件、哪个文件首先执行、可执行文件占用内存的情况。
先确定用到哪些文件,下面只摘取Makefile中与arm相关的部分:
117 include $(OBJTREE)/include/config.mk
118 exportARCH CPU BOARD VENDOR SOC
119
……
127 ifeq ($(ARCH),arm)
128 CROSS_COMPILE = arm-linux-
129 endif
……
163 # load other configuration
164 include $(TOPDIR)/config.mk
165
第117、164行用于包含其他的config.mk文件,第117行所要包含文件的就是在上面的配置过程中制作出来的 include/config.mk文件,其中定义了ARCH、CPU、BOARD、SOC等4个变量的值为arm、arm920t、smdk2410、 s3c24x0。
第164行包含顶层目录的config.mk文件,它根据上面4个变量的值确定了编译器、编译选项等。其中对我们理解编译过程有帮助的是BOARDDIR、LDFLAGS的值,config.mk中:
88 BOARDDIR = $(BOARD)
……
91 sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk# include board specific rules
……
143 LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
……
189 LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
在board/smdk2410/config.mk中,定义了“TEXT_BASE = 0x33F80000”。所以,最终结果如下:BOARDDIR为smdk2410;LDFLAGS中有“-T board/smdk2410/u-boot.lds -Ttext 0x33F80000”字样。
继续往下看Makefile:
166 #########################################################################
167 # U-Boot objects....order is important (i.e. start must be first)
168
169 OBJS = cpu/$(CPU)/start.o
……
193 LIBS = lib_generic/libgeneric.a
194 LIBS += board/$(BOARDDIR)/lib$(BOARD).a
195 LIBS += cpu/$(CPU)/lib$(CPU).a
……
199 LIBS += lib_$(ARCH)/lib$(ARCH).a
200 LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
201 fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
202 LIBS += net/libnet.a
……
212 LIBS += $(BOARDLIBS)
213
……
从第169行得知,OBJS的第一个值为“cpu/$(CPU)/start.o”,即“cpu/arm920t/start.o”。
第193~213行指定了LIBS变量就是平台/开发板相关的各个目录、通用目录下相应的库,比如:lib_generic /libgeneric.a、board/smdk2410/libsmdk2410.a、cpu/arm920t/libarm920t.a、 lib_arm/libarm.a、fs/cramfs/libcramfs.a fs/fat/libfat.a等。
OBJS、LIBS所代表的.o、.a文件就是U-Boot的构成,它们通过如下命令由相应的源文件(或相应子目录下的文件)编译得到。
268 $(OBJS):
269 $(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@))
270
271 $(LIBS):
272 $(MAKE) -C $(dir $(subst $(obj),,$
您可能关注的文档
- RCCP_生成树协议.pdf.pdf
- RLM_R6+用户手册.pdf
- RFPA2D细观版培训教程.ppt
- ROS2.9.27固定IP加PPPOE双线策略.doc
- Robin_Club_5月北京站分享会:大型网站的搜索引擎优化策略(杨兴建).pdf.pdf
- RS232与RS485接口功能、区别.doc
- RX5801中文Datasheet V3.0.pdf
- S25圆弧连接3-.doc
- RMI资料详解.pdf.pdf
- S1~3难报三春晖.pdf.pdf
- 中国农业科学院农业资源与农业区划研究所2024年度公开招聘笔试备考题库及答案详解1套.docx
- 中国城市规划设计研究院2025年度公开招聘笔试模拟试题带答案详解.docx
- 2025年银川市公安局面向宁夏警官职业学院招聘285名警务辅助人员笔试模拟试题及完整答案详解1套.docx
- 2025年衢州市公安局第一期招聘54名警务辅助人员笔试模拟试题含答案详解.docx
- 2025年辽宁沈阳理工大学招聘高层次人才142人笔试模拟试题及答案详解1套.docx
- 中国民航科学技术研究院2024年度面向社会公开招聘工作人员笔试模拟试题及答案详解一套.docx
- 中国地质科学院矿产资源研究所2025年度公开招聘工作人员(第一批)笔试模拟试题及参考答案详解一套.docx
- 中国地质科学院地质力学研究所2024年度社会在职人员公开招聘笔试备考题库及答案详解1套.docx
- 中国疾病预防控制中心2024年度公开招聘学校卫生领域学科带头人笔试备考题库参考答案详解.docx
- 中国热带农业科学院南亚热带作物研究所2025年第二批公开招聘工作人员笔试模拟试题及答案详解一套.docx
文档评论(0)