公 告

欢迎各位网友添加友情链接,在您添加本博客:http://linux0818.blogspot.com/ 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。

2008年10月13日星期一

S3C2410 U-Boot 的交叉编译

S3C2410 U-Boot 的交叉编译步骤:

下载u-boot-1.1.6源码包,下面目录都是指在u-boot-1.1.6当前目录
1. 将 board/smdk2410 拷贝为 board/sbc2410x
U-Boot 将板级相关的源码文件都集中在 board 目录下以开发板名称为名的目录里面,所以将

smdk2410 拷贝复制一份。
2. 将 include/configs/smdk2410.h 拷贝为 include/configs/sbc2410x.h
U-Boot 将板级相关的大部分宏定义都放在上面的头文件里,所以将其拷贝复制一份
3. 修改顶层目录的 Makefile
3-1. 添加以下的语句:(在与下面格式相同的地方添加即可)
sbc2410x_config: unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
这里 MKCONFIG 的参数定义可以在顶层源码目录的mkconfig 找到,如下:
Target Architecture CPU Board [VENDOR] [SOC]
3-2. 添加以下的语句:
ifeq ($(ARCH),arm)
CROSS_COMPILE = /opt/crosstool/gcc-3.3.4-glibc-2.3.3/arm-s3c2410-linux-gnu/bin/arm-

s3c2410-linux-gnu-
endif
(此处为交叉工具链的gcc的绝对路径,注意粗体后别有空格。在arm-s3c2410-linux-gnu的下级目录还有一

个bin目录,并不是那个目录)
在源码目录下执行以下命令进行交叉编译:
make sbc2410x_config (注意用普通用户执行)
make

编译完成后,会生成以下文件:
System.map U-Boot 的符号表
u-boot -- 使用 ELF 二进制文件格式的 U-Boot 映 像
u-boot.bin --u-boot 的原始二进制映像,可写入 引导存储设备
u-boot.srec -- 使用 Motorola 的 S-Record 格 式的 U-Boot 映像,该文件是对板载 nor flash 的驱


U-Boot 已支持的 flash 芯片可以在include/common.h 文件里找到,然后再定位到驱动文件的路径(

一般位于其他板 级目录),拷贝过来进行修正
由于 nor flash 可以直接读取,所以该文件只需要提供“初始化”、“擦除”、“写”的驱动函数:
flash_init()
flash_earse()
write_hword()

没有评论:

发表评论