u-boot-2009.11移植到mini2440(一)

U-Boot移植教程
本文详细介绍了U-Boot在mini2440开发板上的移植过程,包括环境搭建、配置修改及常见问题解决方法。
      由于平时没有做笔记的习惯,造成很多以前遇到并解决了的问题再次遇到后,又得花很多时间去解决,所以决定把现在移植的过程记录下来以供以后查看。
 
操作系统:ubuntu 9.0.4 (linux-2.6.28)
开发板:友善之臂mini2440
交叉编译器:arm-linux-gcc-4.3.2 with EABI 下载
u-boot:u-boot-2009.11 下载
 
一、U-Boot简介
      U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。
 
二、U-Boot移植

1.使用下例命令安装交叉编译器
tar xzvf arm-linux-gcc-4.3.2.tgz –C /
2.设置环境变量
用sudo vi /etc/profile打开配置文件并把以下文本添加到最后一行。
PATH="/usr/local/arm/4.3.2/bin:$PATH"
export PATH
3.使环境变量生效
使用source /etc/profile命令使环境变量生效。
4.解压缩U-Boot
tar xjvf u-boot-2009.11.tar.bz2
cd u-boot-2009.11
5.修改顶层Makefile
找到如下代码
ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE ?=
endif
在其后添加如下代码
CROSS_COMPILE ?= arm-linux-

找到如下代码
smdk2410_config    :    unconfig
    @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0
仿照其格式添加如下代码
mini2440_config    :    unconfig
    @$(MKCONFIG) $(@:_config=) arm arm920t mini2440 friendlyarm s3c24x0


注意:
@$(MKCONFIG)前面是Tab键

其中各项的意思如下:
arm     : CPU的架构(ARCH)
arm920t : CPU的类型(CPU),其对应于cpu/arm920t子目录。
mini2440: 开发板的型号(BOARD),对应于board/friendlyarm/mini2440目录。
friendlyarm: 开发者/或经销商(vender)。
s3c24x0 : 片上系统(SOC)。

修改不能从NAND启动的问题,主要是把我们自己添加的用于nandboot的子函数nand_read_ll编译到4K之前,不然无法运行过lowlevel_init
将__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD))
改为__LIBS := $(subst $(obj),,$(LIBBOARD)) $(subst $(obj),,$(LIBS))

6.在/board子目录中建立自己的开发板mini2440目录
由于我在上一步板子的开发者/或经销商(vender)中填了friendlyarm,所以开发板mini2440目录一定要建在/board子目录中的friendlyarm目录下,否则编译会出错。
cd board
mkdir -p friendlyarm/mini2440
cp -arf samsung/smdk2410/* friendlyarm/mini2440/
cd friendlyarm/mini2440/
mv smdk2410.c mini2440.c

修改Makefile
cd friendlyarm/mini2440
vi Makefile
修改COBJS := smdk2410.o flash.o
为COBJS := mini2440.o flash.o

7.在include/configs/中建立配置头文件
回u-boot主目录
cd ../../..
拷贝头文件
cp include/configs/smdk2410.h include/configs/mini2440.h
8.测试配置是否成功
make mini2440_config
Configuring for mini2440 board...
make

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值