Fl2440 uboot移植步骤
一.配置参数的设置
1. 建立配置参数
方法1:添加boads.cfg
root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09#vi boards.cfg
238 sbc2410x arm arm920t - - s3c24x0
239 smdk2400 arm arm920t - samsung s3c24x0
240 smdk2410 arm arm920t - samsung s3c24x0
241 fl2440 arm arm920t - samsung s3c24x0
注意:这个是make fl2440_config 传入的参数。
在老版本的的Uboot中,没有boards.cfg中文件,在Makefile中直接配置。
如:对于makesmdk2410_config,则应该从Makefile中去寻找smdk2410_config:这个目标。 但是,在新版本的Makefile中,是没有的(老版本中可以找到),取尔代之的是 %_config:: unconfig 这个目标。%是通配符,代表任意字符。mkconfig首先会读取boards.cfg。来看一下boards.cfg这个文件。
但是在该版本还没有完全过渡过来,有些CPU体系还是在Makefile配置传入参数的。
方法2:也可以按照老的方式来做
s3c2440_config : unconfig
在约2231行前添加
@(MKCONFIG) (@:_config=) arm arm920t fl2440 null s3c24x0
2. 设置交叉工具链(注意如果在文件里写死的话,必须写全路径,而make是传因为是在shell状态,所以不必写全路径,有PATH来保证)
方法1:交叉工具链可以不设置:在make时以选项的参数传入:
Sudo make CROSS_COMPILE =arm-none-linux-gnueabi-
方法2:不过最好在makefile中写死:
修改约160行
# set default tonothing for native builds
159 ifeq ((HOSTARCH),(ARCH))
160 CROSS_COMPILE ?=
161 else
162 CROSS_COMPILE ?= /work/cross_compile_4.3.2/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-163 endif
方法3:在config.mk就修改好CROSS_COMPILE?=arm-none-linux-gnueab
Config.mk变量就是建立环境变量,相当于set.sh。
3. 建立板级文件,修改相应的文件名
root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09/board/samsung#cp -rf smdk2410 fl2440
root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09/board/samsung/fl2440#mv smdk2410.c fl2440.c
root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09/board/samsung/fl2440#vi Makefile
28 COBJS := fl2440.o flash.o //这里要也要修改文件名
29SOBJS := lowlevel_init.o
4. 建立头文件
root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09/include/configs#cp smdk2410.h fl2440.h
基本环境配置配好了(并不等于移植,相应的板级文件还没有修改),编译一下,看能不能编译通过。
5. 配置好生成镜像的目录
方法1:make时添加输出目录选择
如:make O=/home/hfl/hflsamb/bin all'
方法2:在makefile生成Uboot.bin镜像后直接copy到相应的目录
在makefile的319行后,直接复制到别处
cp -rfuboot.bin / /home/hfl/hflsamb/bin注意该命令必须在顶格以tab键空格
生成的目录就在复制到对应的目录下,便于调试使用。(正如编译驱动模块,将驱动模块和内核独立,makefile编译时还是要进入内核makefile中编译,编译出来的镜像放到独立的目录下)
以上只是建议编译环境,类似于 stb工程中各种配置文件和shell脚本一样。
6..测试编译环境
1.root@ubuntu:/home/hfl/hflsamb/uboot/u-boot-2010.09# sudomake fl2440_config
Configuringfor fl2440 board...
//类似于于项目中的source 建立编译环境和市场代码一样
在include 目录下生成config.mk和config.h文件
2.sudo make
编译uboot代码,生成默认的uboot镜像