移植U-Boot.1.2.0到友善之臂SBC2440V4(S3C2440AL)


首先,U-Boot1.2.0还没有支持s3c2440,这次移植是用2410的文件稍作修改而成的。其实2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模块的寄存器外,移植所要注意的是NAND FlASH控制器的寄存器有较大的变化、芯片的时钟频率控制寄存器(芯片PLL的寄存器)有一定的变化。其他寄存器基本是兼容的。

U-Boot源代码下载地址

一、在U-Boot中建立自己的开发板类型,并测试编译。
我为开发板取名叫: tekkaman2440


0 在工作目录下解压U-Boot。
$tar zxvf u-boot.git.tar.gz


1 进入U-Boot目录,修改Makefile
$cd u-boot.git/
$vi Makefile
#为tekkaman2440建立编译项

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


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

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

CROSS_COMPILE=/home/tekkaman/working/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-


2 在/board子目录中建立自己的开发板tekkaman2440目录

由于我在上一步板子的
开发者/或经销商(vender)中填了 tekkaman ,所以开发板tekkaman2440目录一定要建在/board子目录中的tekkaman目录下 ,否则编译会出错。

$cd board
$mkdir tekkaman tekkaman/tekkaman2440
$cp -arf sbc2410x/*   tekkaman/tekkaman2440/
$cd tekkaman/tekkaman2440
$mv sbc2410x.c tekkaman2440.c

   还要记得修改自己的开发板tekkaman2440目录下的Makefile文件,不然编译时会出错:
COBJS    := tekkaman2440.o flash.o
$vi Makefile



3 在include/configs/中建立配置头文件
$cd ../../..
$cp include/configs/sbc2410x.h include/configs/tekkaman2440.h



4 测试编译能否成功
$make tekkaman2440_config
Configuring for tekkaman2440 board...
(如果出现:
$ make tekkaman2440_config

Makefile:1927: *** 遗漏分隔符 。 停止。
请在U-boot的根目录下的Makefile的
        @$(MKCONFIG) $(@:_config=) arm arm920t tekkaman2440 tekkaman)
前加上“Tab”键)
$make


    我到这一步测试交叉编译成功!!

  • 1
  • 2
  • 下一页

相关内容