由于Uboot2011.06对S3C6410有了很好的支持,所以采用Uboot2011.06版本。
一、 移植环境
主 机:VMWare-ubuntu
开发板:ok6410—512M nandflash,Kernel:2.6.30.4
u-boot:u-boot-2011.06
二、 源码获得
Uboot源码到:ftp://ftp.denx.de/pub/u-boot/下载
三、 本次移植的功能实现
· 支持Nand Flash读写
· 支持从Nand Flash/SD启动(SD卡启动只在uboot1.1.6中完成)
· 支持CS8900或者DM9000网卡
· 支持Yaffs文件系统
· 支持USB下载
四、 移植步骤
1. 建立自己的开发板项目并测试编译
目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM处理器的支持,有smdk2400、smdk2410和smdk6400,但没有6410,所以我们就在这里建立自己的开发板项目。
1)因6410和6400的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫smdk6410
#tar -jxvf u-boot-2011.06.tar.bz2 //解压源码
#cd u-boot-2011.06/board/samsung/ //进入目录
#mkdir smdk6410 //创建smkd6410文件夹
2)因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改
#cp -ar smdk6400/* smdk6410/ //将6400下所有的代码复制到6410下
#cd smdk6410 //进入smdk6410目录
#mv smdk6400.c my6410.c //将smdk6410下的smdk6400.c改名为smdk6410.c
#cd ../../../ //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/smdk6410.h //建立6410配置头文件
注:把新建smdk6410下smdk6400_nand_spl.c更名位smdk6410_nand_spl.c,并且把smdk6410_nand_spl.c和makefile文件中的6400改为6410。其他文件不需要改动。
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立smdk6410_config的编译选项,另外还要指定交叉编译器
#vim Makefile
CROSS_COMPILE ?= arm-linux- //指定交叉编译器为arm-linux-gcc
smdk6410_noUSB_config
smdk6410_config : unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6410 // 注意@前不是空格,是Tab键
@mkdir -p $(obj)nand_spl/board/samsung/smdk6410
@echo '#define CONFIG_NAND_U_BOOT' > $(obj)include/config.h
@if [ -z '$(findstring smdk6410_noUSB_config,$@)' ]; then
echo 'RAM_TEXT = 0x57e00000' >> $(obj)board/samsung/smdk6410/config.tmp; //前面两个Tab键
$(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;
else
echo 'RAM_TEXT = 0xc7e00000' >> $(obj)board/samsung/smdk6410/config.tmp;
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;
fi
@echo 'CONFIG_NAND_U_BOOT = y' >> $(obj)include/config.mk
*说明:arm :CPU的架构(ARCH)
arm1176:CPU的类型
smdk6410 :对应在board目录下建立新的开发板项目的目录
samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL
s3c64xx:CPU型号
*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错
4)进入顶层目录nand_spl/board/samsung目录新建目录smdk6410,并将smdk6400下的文件复制到刚刚新建的smdk6410下
#cd nand_spl/board/samsung //
#cp –ar smdk6400/* smdk6410/
注:修改目此6410目录下的makefile文件,把里面的6400改为6410
5)测试编译新建的smdk6410开发板项目
#make smdk6410_config //如果出现Configuring for smdk6410 board...则表示设置正确
#make //编译后在根目录下会出现u-boot.bin和u-boot-nand.bin文件,则u-boot移植的第一步就算完成了
由于此版本的u-boot对于串口和时钟在开始配置文件中就已经初始化,对于ARM1176有很好的支持,利用从SD卡启动的uboot将u-boot-nand.bin下载到nand flash中,同时将开发板上SW2设置到从Nand flash启动位置。利用SecureCRT.exe软件观察串口打印信息如下:
可以看到移植在tq6410上移植uboot已经成功。可是Nor flash是2M可是信息上显示为0,是因为没有添加Nor flash的驱动引起的,而且开发板上自带的是DM9000AE的100M网卡,而uboot默认支持CS8900所以开始添加uboot的相关功能。
移植是采用SD烧写nand flash的uboot,为了方便烧写和调试首先移植网卡实现tftp下载。
上一篇:Centos 上搭建nfs且可挂载到6410开发板
下一篇:编译可加载触摸屏驱动的uImage内核
推荐阅读最新更新时间:2026-03-24 11:02
- 热门资源推荐
- 热门放大器推荐
- REF196 精密微功率、低压差堆叠电压基准的典型应用电路
- LTC4367IMS8 用于滞后调节的过压电源控制器的典型应用
- CLRC663非接触式读写器IC的典型应用
- 使用 ON Semiconductor 的 CS-5621 的参考设计
- RSO-0515S 15V、67mA输出DC/DC转换器典型应用电路
- NCP51200 3 Amp VTT 终端稳压器 DDR1、DDR2、DDR3、LPDDR3、DDR4 的典型应用
- LR645大电流SMPS启动电路典型应用
- ADR420 可编程电流源的典型应用
- DC417B,使用 LT1806CS8 多尺寸单运算放大器原型的演示板
- DM300019,用于评估 dsPIC30F 和 dsPIC33F MCU 系列器件的 dsPICDEM 入门开发板

CAN设计源码
CANopen移植工程(源代码)
uCOS-II移植到STM32的详细步骤
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号