uboot编译配置过程

本文详细介绍了U-Boot的编译流程,包括使用预编译工具链的步骤,如何通过修改配置文件定制U-Boot以适应不同硬件平台,以及如何手动制作编译工具链。此外,还提供了具体的配置示例,如设置CPU类型、系统时钟频率和设备驱动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用制作好的编译工具链:
1、解压压缩包
tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 #并不会显示解压过程

2、环境变量PATH中增加路径
exprot PATH=$PATH:/work/tools/gcc-3.4.5-glibc-2.3.6/bin

更好的修改方法:
通过修改.bashrc文件:
vim ~/.bashrc
//在最后一行添上:
export PATH=/work/tools/gcc-3.4.5-glibc-2.3.6/bin:$PATH
生效方法:(有以下两种)
1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
2、输入“source ~/.bashrc”命令,立即生效

二、手动制作编译工具链
1、

三、uboot配置、编译、连接
1、make smdk2410_config
相当于执行 ./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
1)、开发板BOARD_NAME=$1
2)、创建到平台/开发板相关头文件连接
ln -s asm-$2
ln -s arch-$6 asm-$2/arch
ln -s proc-armv asm-$2/proc #如果$2不是arm的话,此行没有
3)、创建顶层Makefile包含的文件
ARCH=$2
CPU=$3
BOARD=$5
SOC=$6
4)、创建开发板相关头文件include/config.h
2、手动修改include/config/<board_name>.h来裁剪、设置uboot,即include/config/smdk2410.h文件
1)、前缀为CONFIG的文件,用于配置CPU、SOC、开发板类型,设置系统时钟、选择设备驱动等,如:
/*
* High Level Configuration Options
* (easy to change)
*/
#define CONFIG_ARM920T 1 /* This is an ARM920T Core */
#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */
#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */
/* input clock of PLL */
#define CONFIG_SYS_CLK_FREQ 12000000 /* the SMDK2410 has 12MHz input clock */
/* Hardware drivers */
#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */

2)、前缀为CFG文件用于设置malloc缓冲池大小、uboot提示符、uboot下载时默认加载地址、flash起始地址
#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024)
#define CFG_PROMPT "SMDK2410 # " /* Monitor Command Prompt */
#define CFG_LOAD_ADDR 0x33000000 /* default load address */
#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */

3、make

总结:
1、编译cpu/$(CPU)/start.S,对于不同的CPU,还可能编译cpu/$(CPU)下的其他文件。
2、然后,对于平台/开发板相关的每个目录,每个通用目录都使用它们格子的Makefile生成对应的库。
3、将1、2生成的.o、.a文件按照board/$(BOARDDIR)/config.mk文件中指定的代码段地址、board/$(BOARDDIR)/U-Boot.lds连接脚本进行连接。
4、第3步得到的ELF格式U-Boot,Makefile将它转换为二进制、S-Record格式。


附、使用补丁文件
1、cd u-boot-1.1.6/
2、patch -p1 < ../u-boot-1.1.6_jz2440.patch
3、make 100ask24x0_config
4、make

 

转载于:https://www.cnblogs.com/mofei004/p/10406159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值