AM335x UBOOT移植记录
UBOOT 的编译命令
直接一次性编译
make O=am335x CROSS_COMPILE=arm-arago-linux-gnueabi ARCH=arm
am335x_evm
配置
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- am335x_evm_confi
编译
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi-
清理
make clean ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi-
make distclean ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi-
编译器环境变量的设置
这个环境变量是TI 的SDK 包里面带的编译器,不是之前的 arm-gcc-
export PATH=$PATH:/mnt/disk1/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/
UBOOT MLO u-boot-spl
里面的 ( )
如果使用 NAND 启动,那么这个文件就是相当于 NBOOT,进行第一次的引导
这个 MLO 实际上就是 u-boot-spl.bin 生成的,
uboot SPL .o uboot
在编译完 后, 的目录里面会产生了许多的 文件,这里文件就是 的文件,
可以打开 Makefile,有一些对应的宏定义,可以取消,减少 MLO 文件的大小
UBOOT 的链接脚本lds
UBOOT\arch\arm\cpu\armv7\u-boot.lds
正常运行 UBOOT 的lds
UBOOT\arch\arm\cpu\armv7\omap-common\u-boot.lds
这个是 nboot,加载uboot 用
2 lds
有 个 ,不同的作用,注意要区别开
增加新的单板支持
在 boards.cfg 文件中,找到加入,例如
arm armv7 board ti ti81xx
单板名字 对应 的目录
make uboot ti uboot
以后就可以执行 单板名字 来生成 ,这里被 改写了,所以不是原版的
生成方法
一些代码的定位
u-boot-2011.09-psp04.06.00.08/arch/arm/cpu/armv7
这个目录下的几个文件,start.s 这个是程序的入口执行文件
u-boot-2011.09-psp04.06.00.08/arch/arm/cpu/armv7/omap-common
u-boot-2011.09-psp04.06.00.08/arch/arm/cpu/armv7/ti81xx
2 AM335X ti81xx
这 个目录是和平台板子相关, 是 的版本
以上都是和CPU 有关
u-boot-2011.09-psp04.06.00.08/arch/lib
ARM 平台的公用代码
u-boot-2011.09-psp04.06.00.08/lib
通用的库代码,无论什么平台都编译
board/ti/xxx 这个目录就是单板的配置
Makefile 文件分析
在终端中输入后
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- am335x_evm_confi
命令后,会生成 3 个文件
1、.boards.depend
2、include/config.h
/* Automatically generated - do not edit */
#define CONFIG_BOARDDIR board/ti/am335x