您的位置:首页 > 其它

基于FL2440开发板的U-boot移植记录

2016-05-17 14:53 357 查看
参考文章:[]http://blog.csdn.net/yanghao23/article/details/7687950]

一.简要解说 make xxx_config命令

uboot中 make xxx_config 是执行mkconfig脚本,大致是去boards.cfg里grep对应的xxx,boards.cfg文件内容截取如下:

# Target        ARCH CPU     Board name  Vendor      SoC
smdk2410        arm arm920t     -       samsung     s3c24x0
fl2440          arm arm920t     fl2440      -       s3c24x0  //自己添加的


grepg到相应的Target后,提取出对应的board,cpu,arch自动生成 ./include/config.h 和 ./include/config.mk 文件并创建链接./include/asm -> ../arch/arm/include/asm,以下是make fl2440_config和make smdk2410分别得出的结果对比:

其中config.h里是

make fl2440_config的结果:

1 /* Automatically generated - do not edit */
2 #define CONFIG_BOARDDIR board/fl2440     //此处定义了开发板相关文件的目录,  board/vendor/target
3 #include <config_defaults.h>
4 #include <configs/fl2440.h>             //配置头文件
5 #include <asm/config.h>


make smdk2410_config的结果

1 /* Automatically generated - do not edit */
2 #define CONFIG_BOARDDIR board/samsung/smdk2410
3 #include <config_defaults.h>
4 #include <configs/smdk2410.h
5 #include <asm/config.h>


其中config.mk里是boards.cfg里的信息

make fl2440_config的结果

1 ARCH   = arm
2 CPU    = arm920t
3 BOARD  = fl2440
4 SOC    = s3c24x0


make smdk2410结果

1 ARCH   =arm
2 CPU    = arm920t
3 BOARD  = smdk2410
4 VENDOR = samsung
5 SOC    = s3c24x


所以,移植uboot到你的开发板时,在使用make xxx_config配置文件前要先在boards.cfg中加上你的开发板信息,加入配置头文件(与boards.cfg中的Target一置)/include/configs/xxx.h ,在board/vendor/xxx/下加入开发板的一些C文件等,如果未添vendor则直接添加到board/xxx/下。

二.具体修改步骤:

综上所述,移植uboot第一步要修改三个地方:

修改boards.cfg,添加对FL2440开发板的支持,Target是配置头文件的名字

# Target        ARCH CPU     Board name  Vendor      SoC

fl2440          arm arm920t     fl2440      -       s3c24x0  //vendor为空时,fl2440目录直接在/board/下建立就行。


在include/configs/中建立开发板的配置头文件,此处的头文件名要与上一步的Target对应,不然make fl2440_config时找不到配置文件会出如下错误:

make: *** No rule to make target `fl2440_config'.  Stop.
make: *** [fl2440_config] Error 1


anzyelay@ubuntu:u-boot-2010.09$ cp include/configs/smdk2410.h include/configs/fl2440.h


因为vendor为空,所以直接在board/目录下添加开发板的目录 fl2440/ ,并将smdk2410中的文件全部拷贝过来,更改smdk2410.c为fl2440.c ,更改同级的Makefile中的依赖文件(如果没有改smdk2410.c则可以不用改)

anzyelay@ubuntu:u-boot-2010.09$ cp board/samsung/smdk2410/ board/fl2440 -r
anzyelay@ubuntu:u-boot-2010.09$ ls board/fl2440/
config.mk  flash.c  lowlevel_init.S  Makefile  smdk2410.c
anzyelay@ubuntu:u-boot-2010.09$ mv board/fl2440/smdk2410.c board/fl2440/fl2440.c
anzyelay@ubuntu:u-boot-2010.09$ vi board/fl2440/Makefile +28
COBJS   := fl2440.o flash.o   // 未改时为COBJS   := smdk2410.o flash.o


配置 ,成功后如下所示

anzyelay@ubuntu:u-boot-2010.09$ make fl2440_config
Configuring for fl2440 board...
anzyelay@ubuntu:u-boot-2010.09$


编译 看看前面的修改是否正确

anzyelay@ubuntu:u-boot-2010.09$ make


第一步成功后就说明基本的开发板配置OK了下面就是更改汇编文件

三.修改CPU启动代码

anzyelay@ubuntu:u-boot-2010.09$ vi arch/arm/cpu/arm920t/start.S


….
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: