fl2440 uboot 移植总结

2022-06-14 08:15:33 浏览数 (1)

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镜像

0 人点赞