ddd
全部博文(22)
分类: 嵌入式
2010-04-25 13:47:38
本文参考了一些高手,主要是Tekkaman Ninja和 flyslightly的移植文章,我在声明中已经提到,移植U-Boot-2009.08到友善之臂mini2440 声明。
再次感谢Tekkaman Ninja和 flyslightly!
移植U-Boot-2009.08到友善之臂mini2440
本文是针对在友善之臂公司出品的以 S3C2440 为核心的 mini2440 开发板上实现U-Boot-2009.08的移植。其中存储介质为一片256 MB 的 NAND Flash(K9F2G08),一片2MB的 NOR Flash(SST-39VF1601),两片 32 MB 的 SDRAM(HY57V561620FTP),网卡芯片为 DM9000a46 。
移植U-Boot.2009.08到友善之臂mini2440(一)
一、在U-Boot中建立自己的开发板类型,并测试编译。
在U-Boot中建立自己的开发板文件(以友善之臂的sbc2410x为基础)。开发板取名《mini2440》。
(1) 在工作目录/opt下解压U-Boot-2009.08
[root@localhost opt]$ tar -xjvf u-boot-2009.08.tar.bz2
(2) 进入U-Boot-2009.08的根目录,修改Makefile,使用vi或gedit编辑器
[root@localhost opt] # cd u-boot-2009.08
[root@localhost u-boot-2009.08] # vi Makefile
u-boot-2009.08的根目录下面的Makefile中为mini2440建立编译项,以sbc2410x为例子。
在2985行的后面加上对mini2440板子的支持!
sbc2410x_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s
各项的意思如下:
arm: CPU的架构(ARCH)
arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
mini2440: 开发板的型号(BOARD),对应于board/ mini2440目录。
NULL: 开发者/或经销商(vender),NULL为没有。
s
注意下面要与自己的开发系统一致,一般是默认arm-linux-!
CROSS_COMPILE=arm-linux-
特别注意:
在u-boot
__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
改为: __LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))
2 在/board子目录中建立自己的开发板mini2440目录
由于在上一步板子的开发者/或经销商(vender)中填了 NULL ,所以开发板mini2440目录一定要建在/board目录下 ,目录结构为board/mini2440。如果开发者/经销商(vender)不为NULL,则目录结构为board/verder_name/mini2440,否则编译会出错。
[root@localhost u-boot-2009.08]$ cd board
[root@localhost board]$ mkdir mini2440
[root@localhost board]$ cp -arf sbc2410x/* mini2440/
[root@localhost board]$ cd mini2440/
[root@localhost mini2440]$ mv sbc2410x.c mini2440.c
还要记得修改自己的开发板mini2440目录下的Makefile文件28行,不然编译时会出错:
[root@localhost mini2440]$ vi Makefile
修改Makefile的依赖文件
COBJS := sbc2410x.o flash.o
COBJS := mini2440.o flash.o
3 在include/configs/中建立开发板的配置头文件
[root@localhost mini2440]$ cd ../../.. (回到u-boot-2009.08的根目录下)
[root@localhost u-boot-2009.08]$ cp include/configs/sbc2410x.h include/configs/mini2440.h (添加mini2440的配置头文件)
4 测试编译能否成功
回到U-Boot主目录,(若之前有编译过,最好执行一下make clean) make mini2440_config,再make,编译生成u-boot.bin成功。
1、配置
[root@localhost u-boot-2009.08]$ make mini2440_config
Configuring for mini2440 board...
可能出现的问题:
(1) 如果出现:
$ make mini2440_config
Makefile:1927: *** 遗漏分隔符 。 停止。
请在U-boot的根目录下的Makefile的
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 NULL s
前加上“Tab”键
2、测试编译
[root@localhost u-boot-2009.08]$ make
测试通过后进行下一步