前言
在之前的文章中,介绍了imx的头部组成部分,本文将介绍u-boot如何通过mkimage工具构建imx的头部。
正文
在imx6平台上进行裸机程序开发时,通常需要添加imx头部信息,才能使的程序成功运行,是否有合适的工具能够完成这样的工作呢?答案是明显的,u-boot就是一个不择不扣的裸机程序,下载imx提供的u-boot源码,可以直接编译得到u-boot.bin与u-boot.imx文件,只要了解了nxp是如何将u-boot.bin变为u-boot.imx的我们也就知道如何为我们的裸机程序添加头部信息了。
1.下载nxp提供的u-boot源码。
前往nxp的git下载u-boot
2.获取make过程信息
为了了解nxp是如何将u-boot.bin变成u-boot.imx的,我们先从make过程开始,
a.首先对下载好的源码进行make distclean,避免影响后续编译。
b.配置编译环境(这个根据各自的情况设置 ARCH CROSS_COMPILE)
c.make xxx_config(根据自身情况)
d.重新编译,此时添加V=1,显示make过程信息,并且从定向到文件中去,方便后续查找,make V=1 > make.log
3.查找u-boot.imx生成命令
通过查找make.log中u-boot.imx,可以找到./tools/mkimage -n board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg.cgftmp -T imximage -e 0x17800000 -d u-boot.bin u-boot.imx
很明显u-boot.imx是由mkimage工具生成的,下面按照如上命令分析mkimage的工作过程。
4.mkimage 命令分析
mkimage命令选项较多,可以通过-h 选项查看,其中
-n 指定imagename,对于imx来说,实际为配置文件地址
-T 指定镜像类型,确定是哪个平台的image,根据这个值,会调用相关平台的处理函数。
-e 指定程序的入口地址,即u-boot.bin开始运行的地址
-d 指定u-boot源文件,即u-boot.bin
你的文章让我学到了很多技能,非常实用。 http://www.55baobei.com/YiMLFsmPZa.html
你的文章让我学到了很多技能,非常实用。 http://www.55baobei.com/YiMLFsmPZa.html
你的文章让我感受到了不一样的视角,非常精彩。 http://www.55baobei.com/DUoVvlhbvb.html
你的才华让人瞩目,期待你的更多文章。 https://www.4006400989.com/qyvideo/99957.html
你的才华横溢,让人敬佩。 http://www.55baobei.com/goYhG9FVqd.html