3 移植实例
本系统开发板主要由S3C44B0X嵌入式微处理器、2MB的Flash (SST39VF160) 、8MB的SDRAM(HY57V641620) 、4个LED以及ARM JTAG接口组成。该开发板上与S3C44B0X相关部分的功能框图如图1所示。
3.1 u-boot文件下载
u-boot文件的下载有两种方法,第一种是在Linux环境下通过CVS下载最新的文件,方法是:
$ cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot login
当要求输入匿名登录的密码时,可直接按回车键
$ cvs -z6 -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/u-boot co -P modulename
第二种是通过ftp://ftp.denx.de/pub/u-boot/下载正式发布的压缩文件。
3.2 u-boot文件的结构
初次下载的文件有很多,解压后存放在u-boot文件目录下,具体内容已在readme文件中做了详细的介绍,其中与移植相关的主要文件夹有:
(1) cpu/ 它的每个子文件夹里都有如下文件:
makefile config.mk cpu.c 和处理器相关的代码 interrupts.c 中断处理代码 serial.c 串口初始化代码 start.s 全局开始启动代码
(2) board/ 它的每个子文件夹里都有如下文件:
makefile config.mk smdk2410.c 和板子相关的代码(以smdk2410为例) flash.c Flash操作代码 memsetup.s 初始化SDRAM代码 u-boot.lds 对应的连接文件
(3) lib_arm/ 体系结构下的相关实现代码,比如memcpy等的汇编语言的优化实现。
3.3 交叉编译环境的建立
要得到下载到目标板的u-boot二进制启动代码,还需要对下载的u-boot1.1.1进行编译。u-boot的编译一般在Linux系统下进行,可用arm-linux-gcc进行编译。一步一步建立交叉编译环境通常比较复杂,最简单的方法是使用别人编译好的交叉编译工具,方法如下:
(1) 在http://handhelds.org/download/toolchain下载arm-linux-gcc-3.3.2.tar.bz2
(2) 以用户名root登录,将arm-linux-gcc-3.3.2.tar.bz2 解压到 /root目录下
# tar jxvf arm-linux-gcc-3.3.2.tar.bz2
(3) 在http://handhelds.org/download/toolchain下载arm-linux-toolchain-post-2.2.13.tar.gz,只是用了它的头文件而已,主要来自内核/linux-x.x/include下
(4) 将arm-linux-toolchain-post-2.2. 13.tar.gz 解压到/skiff/local/ 下
# tar zxvf arm-linux-toolchain-post-2.2.13.tar.gz
|