IMX头部详细解析之二 头部生成工具

前言

在之前的文章中,介绍了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

你可能感兴趣的:(嵌入式Linux)