一、    准备移植

1、嵌入式 Linux软件结构与分布 

一般情况下嵌入式Linux系统中的软件主要分为以下几部分:

1) 引导加载程序:其中包括内部 ROM中的固化启动代码和 BootLoader两部分。

内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导BootLoader

有的芯片比较复杂,比如 Omap3 flash中没有代码的时候有许多启动方式:

USBUART或以太网等等。而 S3C24x0则很简单,只有 Norboot

Nandboot

2) Linux kernel drivers

3) 文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4

UBICRAMFS等等)。它是提供管理系统的各种配置文件以及系统执行用户应

用程序的良好运行环境及载体。

4) 应用程序。用户自定义的应用程序,存放于文件系统之中。

Flash存储器中,他们的分布一般如下:

 

2、获得源码:

u-boot-2010.03.tar.bz2可到官网ftp://ftp.denx.de/pub/u-boot/获得。

3、  U-BOOT主要目录结构和启动流程:

一、     建立自己的开发板项目

1、解压源码,进入目录: 

#tar  xjvf  u-boot-2010.03.tar.bz2

#cd  u-boot-2010.03/board/samsung/

1、 建立smdk6410目录:

因s6410和6400的资源差不多,主频和外设有点差别,故在board/samsung/下建立自己开发板的项目,取名叫smdk6410。并将smdk6400里的所有文件复制到smdk6410中,进入smdk6410文件夹将smdk6400.c更名为smdk6410.c,并且打开此文件,将里面的6400全部改为6410。打开Makfile,将里面的6400改为6410。

2、 进入/u-boot-2011.03 /nand_spl/board/samsung/smdk6400/的目录,复制smdk6400,并黏贴,将副本smdk6400更名为smdk6410,更改Makefile文件,将里面的6400全部改成6410。

4、进入到 include/configs/ 复制smdk6400.h,并将副本改为smdk6410.h。

5、指定交叉编译工具,找到CROSS_COMPILE?=在等号后面添加arm-linux-

注:*说明:arm   :CPU的架构(ARCH)

arm1176:CPU的类型

smdk6410:对应在board目录下建立新的开发板项目的目录

samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL

s3c64xx:CPU型号

*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错

 

6、测试编译新建的smdk6410开发板项目

#make  smdk6410_config

如果出现Configuring for smdk6410 board...则表示设置正确

#make 

编译后在根目录下会出现u-boot.bin文件,则u-boot移植的第一步就算完成了。

到此为止,u-boot对自己的smdk6410开发板还没有任何用处,以上的移植只是搭建了一个th6410开发板u-boot的框架,要使其功能实现,还要根据smdk6410开发板的具体资源情况来对u-boot源码进行修改。

 

 

Logo

更多推荐