一.移植环境
虚拟机:ubuntu12.04
uboot源码:u-boot-2008.10.tar.bz2
交叉编译:arm-linux-gcc-4.4.3
简单的记录下编译uboot的过程,要想具体了解uboot的工作原理,可以查看韦东山对uboot这部分的讲解,红色部分为修改部分
二.移植步骤
1.将uboot源码复制到ubuntu下的自己定义的文件夹,并解压tar jxvf u-boot-2008.10.tar.bz2
2.选择要移植的开发板,我们要准备将uboot移植到mini2440上,s3c2440开发板的cpu为arm920t,smdk2410开发板的cpu也为arm920t,所以我们选择smdk2410作为模板进行移植
3.首先将u-boot-2008.10/board下面的smdk2410 这个文件夹复制成一个自己定义的文件,放在board目录下:
cp -rf smdk2410 mini2440
进入mini2440目录,将smdk.c重命名为mini2440.h,与建立的文件夹名字相符
进入u-boot-2008.10/include/configs目录下,为你的开发板建立一个头文件,以smdk2410.h为模板
cp -r smdk2410.h mini2440.h
4. 在顶层Makefile中为开发板添加新的配置选项
smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0 mini2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s3c24x0 CROSS_COMPILE = arm-linux- //指定交叉编译环境
这部分代码时为mini2440添加配置选项,当我们运行make mini2440_config时,执行的就是这句语句
在mini2440文件夹中修改目标文件
COBJS:= mini2440.o flash.o
到这里我们可以编译我们新建的mini2440开发板了
make mini2440_config 配置mini2440
执行这个步骤,打印出
Configuring for mini2440 board...
执行make
在执行的过程中,会报错,具体的错误忘了,当时忘记截图了,如果报错的话,你找到报错的源文件,并将报错的语句全都注释掉,报错的话主要是因为硬件初始化的led与mini2440 然后进行make,编译成功的话会在目录下生成uboot.bin文件。
5. 修改u-boot-2008.10/cpu/arm920t/start.s,添加中断设置部分和时钟初始化部分
(1)修改编译条件,使其支持mini2440
(2)添加硬件初始化的相关寄存器
基于mini2440的uboot移植(一),布布扣,bubuko.com
原文:http://www.cnblogs.com/rwzhou/p/3675730.html