编译需要安装arm-fsl-linux-gnueabi-gcc
工具链并且配置好环境变量,若没有,则参照安装:
嵌入式Linux开发(准备篇) | 嵌入式Linux介绍及ARM9开发环境搭建
1.准备适配开发板的uboot压缩包
在开发板配套资料中获得:
解压:
tar -jxf bootloader-v1.13.tar.bz2
目录说明:
目录名 | 描述 |
---|---|
u-boot-2009.08 | U-Boot源代码,编译后得到u-boot文件,但还不能用于开发板 |
imx-bootlets-src-20.12.01 | 对u-boot文件打补丁,再次编译,生成适用于开发板的文件 |
elftosb | Freescale提供的elf->sb文件格式转化工具 |
2.开始编译
2.1.u-boot-2009.08目录下编译
- 进入
u-boot-2009.08
目录:
- 清除原有编译文件
make ARCG=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- distclean
- 编译配置,配置U-Boot的平台为mx28_evk_config:
make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- mx28_evk_config
- 执行编译:
make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-
编译完成后,生成了u-boot
文件:
注意,这个u-boot
文件不能作为固件直接烧写到开发板中,需要使用imx-bootlets-src-20.12.01
下的工具进一步编译成带电源配置的imx28_ivt_uboot.sb
固件文件。
2.2.进一步编译
- 首先将上一步中生成的
u-boot
复制到imx-bootlets-src-20.12.01
目录下:
cp u-boot ../imx-bootlets-src-20.12.01/
- 将
elftosb
目录下的elftosb_64bit
文件改名为elftosb
,复制到/usr/bin
目录下:
mv elftosb_64bit elftosb
sudo cp elftosb /usr/bin/
- 进入
imx-bootlets-src-20.12.01
目录,执行编译命令:
make CROSS_COMPILE=arm-fsl-linux-gnueabi- BOARD=iMX28_EVK