[IMX6Q]u-boot.bin和u-boot.imx的区别
2016-01-18 17:37
337 查看
u-boot版本: v2015.04
branch: imx_v2015.04_3.14.52_1.1.0_ga
先说结论,它们的差别在于xxx.cfg文件上,里面主要保存了ddr的配置信息,供ROM读取来初始化内存!
从编译过程来了解
Makefile:
Makefile:
此值是在./configs/mx6qecovacsandroid_defconfig定义:(平台不同,使用的xxx.cfg也不同)
如何被编译到u-boot.imx中?看 $(call if_changed,mkimage) 做了什么。
scripts/Kbuild.include:
它就先用$(echo-cmd) 回显出新的命令$(cmd_$(1)),接着执行命令$(cmd_$(1)),
最后再将该命令写到一个叫做$(dot-target).cmd 的临时文件中去,以方便下一次
检查命令行是否有变的时候用。
本例mx6qecovacs.cfg.cfgtmp确实有更新了,所以会执行命令 cmd_$(1),也就是cmd_mkimage:
Makefile:
参考:
http://blog.chinaunix.net/uid-26675482-id-4408585.html
branch: imx_v2015.04_3.14.52_1.1.0_ga
先说结论,它们的差别在于xxx.cfg文件上,里面主要保存了ddr的配置信息,供ROM读取来初始化内存!
从编译过程来了解
Makefile:
u-boot.imx: u-boot.bin $(IMX_CONFIG) FORCE $(call if_changed,mkimage)IMX_CONFIG是什么?
Makefile:
IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp $(IMX_CONFIG): %.cfgtmp: % FORCE $(Q)mkdir -p $(dir $@) $(call if_changed_dep,cpp_cfg)CONFIG_IMX_CONFIG是什么:
此值是在./configs/mx6qecovacsandroid_defconfig定义:(平台不同,使用的xxx.cfg也不同)
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qecovacs/mx6qecovacs.cfg,MX6Q,ANDROID_SUPPORT"然后被编译到了./include/config.h
./include/config.h:2:#define CONFIG_IMX_CONFIG board/freescale/mx6qecovacs/mx6qecovacs.cfg所以最终IMX_CONFIG的值是 mx6qecovacs.cfg.cfgtmp
如何被编译到u-boot.imx中?看 $(call if_changed,mkimage) 做了什么。
scripts/Kbuild.include:
# Execute command if command has changed or prerequisite(s) are updated. # if_changed = $(if $(strip $(any-prereq) $(arg-check)), \ @set -e; \ $(echo-cmd) $(cmd_$(1)); \ printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)也就是说只要当发现规则的依赖有被更新了、或者编译该规则对应目标的命令行发生改变了,
它就先用$(echo-cmd) 回显出新的命令$(cmd_$(1)),接着执行命令$(cmd_$(1)),
最后再将该命令写到一个叫做$(dot-target).cmd 的临时文件中去,以方便下一次
检查命令行是否有变的时候用。
本例mx6qecovacs.cfg.cfgtmp确实有更新了,所以会执行命令 cmd_$(1),也就是cmd_mkimage:
Makefile:
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \ $(if $(KBUILD_VERBOSE:1=), >/dev/null)从编译的命令行其实也可以看到:
./tools/mkimage -n board/freescale/mx6qecovacs/mx6qecovacs.cfg.cfgtmp -T imximage -e 0x17800000 -d u-boot.bin u-boot.imx
参考:
http://blog.chinaunix.net/uid-26675482-id-4408585.html
相关文章推荐
- 惠普打印机网络驱动安装方法
- Windows 平台下 Go 语言的安装和环境变量设置
- IOS一个漂亮的书架
- 使用Appium测试IOS程序
- 基与基础10:又是函数之引用
- Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
- PHP安全选项配置学习笔记
- 随机出题程序
- Java GC专家系列2:Java 垃圾回收的监控
- c++中编译器的作用
- 柯南君:看大数据时代下的IT架构(6)消息队列之RabbitMQ--案例(Publish/Subscribe起航)
- Two Sum
- RecyclerView的万能分割线
- web应用的乱码解决
- php 5.6以上可以采用new PDD连接数据库的方法。
- Oracle创建DataBase Links
- Android活动(Activity)状态与生命周期总结
- 程序猿人们、媛媛们精神分裂的9件事
- Linux C串口编程部分 转
- nginx 重写 rewrite 基础及实例