Chinaunix首页 | 论坛 | 博客
  • 博客访问: 710731
  • 博文数量: 105
  • 博客积分: 3532
  • 博客等级: 中校
  • 技术积分: 1328
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 18:57
文章分类

全部博文(105)

文章存档

2015年(1)

2014年(1)

2013年(7)

2012年(14)

2011年(21)

2010年(61)

分类: LINUX

2010-04-26 22:03:35

首先认识一下uboot的功能:

Uboot主要是引导加载程序,可以传递启动参数给内核。不过他的启动方式有两种:从nor flash中启动和nand flash中启动。从nor flash中启动不需要4K的内存就直接能在flash中启动而nand flash则不能,需要4K内存,完成以下:初始化存储器端口

移植uboot能完成的功能:利用串口下载,usb下载,tftp传输文件,烧写文件系统cramfsyaffs2jaffs

移植的功能有:

网卡、nand、串口、存储器初始化

移植前的准备:

1.       uboot源码下载:

2.       交叉编译工具:因为刚开始学习arm,对于它的编译环境还不了解所以走了不少弯路。开始交叉编译时,总是出错,这时候就要看看是不是你的交叉编译器是不是完整的。通常用crosstools生成的交叉编译器是完整的,否则可能会出现错误。比如说:不支持软浮点功能;

3.       设置交叉编译环境:

export PATH=$PATH:/usr/local/arm/3.4.5/bin(根据你的交叉编译器路径进行设置),最后用arm-linux-gcc –v命令检查一下交叉编译器版本是不是有问题;

Nand flash烧写的功能实现分为两种:1nand legecy的旧的烧写形式2)采用nand_read.C的烧写形式。

采用第一种方式需要主要修改的文件:

1.     顶层根目录下Makefile文件修改:

1)#为你的开发板建立编译项以sky2440为例

sbc2410x_config: unconfig
              @$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0

sky2440_config    :    unconfig
              @$(MKCONFIG) $(@:_config=) arm arm920t sky2440 NULL s3c24x0

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

2) 同时在“ifndef CROSS_COMPILE ”之前加上自己交叉编译器的路径,比如我使用crosstool-0.43制作的基于2.6.24内核和gcc-4.1.1-glibc-2.3.2ARM9TDMI交叉编译器,则:

CROSS_COMPILE=/usr/local/arm/3.4.5/bin/arm-linux -(根据具体情况修改);

2.      如果开发者/或经销商设置成NULL时,/board子目录中建立自己的开发板sky2440目录 即可完成,否则,要先建立开发者或经销商目录再在此目录下建立开发板目录。

3.复制sbc2410x目录下文件到

阅读(1975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~