文档详情

移植uboot到armer9开发系统上.pdf

发布:2025-06-08约1.37万字共15页下载文档
文本预览下载声明

首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。让uboot在

ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot

就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有

些命令需要做修改。

SMDK2410:norflash是AMD的1M的;

ARMer9:是IntelE28F128J3A,两片并联,一共32MBytes.

一个uboot-1.1.1.tar.bz2.;

tarjxvfuboot-1.1.1.tar.bz2;

在ubootboard/smdk2410下的flash.c需要修改。这个是Flash的驱动,如何写,需

要参考E28F128J3A的Datasheet.这里我们提供一个我们修改好的flash.c文件,您只需要

将这个文件覆盖掉board/smdk2410下的文件即可。

(注意:你要安装了交叉编译器才行哦)

修改uboot下的Makefile,将

ifeq($(ARCH),arm)

CROSS_COMPILE=arm-linux-

endif

修改成

ifeq($(ARCH),arm)

CROSS_COMPILE=/opt/host/armv4l/bin/armv4l-unknown-linux-

endif

修改processor.h中:

uniondebug_insn

{

u32arm;

u16thumb;

}

修改成:

uniondebug_insn

{

u32arm_mode;

u16thumb_mode;

}

然后配置板子

makesmdk2410_config

然后

make

在uboot生成uboot.bin;

通过sjf2410w程序将uboot.bin到norflash中,地址为0的地方;

串口接在UART0上,uboot的启动信息将输出。

你将发现很多命令都可以使用了。uboot果然强大。

关于网络部分,因为ARMer9开发系统使用也是CS8900A,所以代码部分几乎不用做改动,

只需要在include/configs/smdk2410.h中看看,有没有定义CONFIG_ETHADDR,

CONFIG_IPADDR,CONFIG_SERVERIP这些宏没有,如果没有,请定义好。

#defineCONFIG_ETHADDR00:00:e0:ff:cd:15

#defineCONFIG_IPADDR

#defineCONFIG_SERVERIP00

就这样修改一下,网络部分功能就通了,哈哈。

可以使用tftpboot命令从tftp服务器程序到系统内存中。

#tftpboot0zImage

#bootm0

利用uboot可执行映象的通用方法

uboot源代码的tools/下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多

种可启动映象文件。

mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,

记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS

的,哪种类型,加载内存中的哪个位置,点在内存的那个位置以及映象名是什么

root@Glym:/tftpboot#./mkimage

Usage:./mkimage-limage

-llistimageheaderinformation

./mkimage-Aarch-Oos-Ttype-Ccomp-aaddr-eep-nname-d

data_file[:data_file...

显示全部
相似文档