基于FL2440开发板的U-boot移植记录
2016-05-17 14:53
357 查看
参考文章:[]http://blog.csdn.net/yanghao23/article/details/7687950]
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的结果:
make smdk2410_config的结果
其中config.mk里是boards.cfg里的信息
make fl2440_config的结果
make smdk2410结果
所以,移植uboot到你的开发板时,在使用make xxx_config配置文件前要先在boards.cfg中加上你的开发板信息,加入配置头文件(与boards.cfg中的Target一置)/include/configs/xxx.h ,在board/vendor/xxx/下加入开发板的一些C文件等,如果未添vendor则直接添加到board/xxx/下。
修改boards.cfg,添加对FL2440开发板的支持,Target是配置头文件的名字
在include/configs/中建立开发板的配置头文件,此处的头文件名要与上一步的Target对应,不然make fl2440_config时找不到配置文件会出如下错误:
因为vendor为空,所以直接在board/目录下添加开发板的目录 fl2440/ ,并将smdk2410中的文件全部拷贝过来,更改smdk2410.c为fl2440.c ,更改同级的Makefile中的依赖文件(如果没有改smdk2410.c则可以不用改)
配置 ,成功后如下所示
编译 看看前面的修改是否正确
第一步成功后就说明基本的开发板配置OK了下面就是更改汇编文件
….
一.简要解说 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
….
相关文章推荐
- plsql连接错误提示ora-12514
- MFC获取磁盘信息
- NIO框架(4)---聊天室
- 206. Reverse Linked List&&92. Reverse Linked List II
- 如何从按行读文件&&以及每行中有多少个数据块,并输出每个数据块
- 欢迎使用CSDN-markdown编辑器
- Android让AlertDialog点击确定不会消失
- 把数组排成最小的数
- Android省市区三级联动滚轮选择(真实项目中提取出来的组件)
- 百度地图Poi关键字查询附近地点
- 寻找数组中第K频繁的元素
- jquery 双击修改某项值
- java 集合框架总结
- ThreadLocal源码分析
- 一文搞懂算法的时间复杂度与空间复杂度
- 以C程序为例内存分布详解
- Pycharm漫天波浪线问题
- Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel
- 水题 约瑟夫问题 STL
- Struts2中的国际化