基于S3C2440_uboot2010.06的移植手册.docx
文本预览下载声明
说明Uboot版本:2010.06交叉编译器版本:arm-linux-gcc 4.3.2操作系统版本:Ubuntu 13.10开发板平台:ARM920T—TX2440NOR FLASH:EN29LV160BB-70TIP (2M) x8bit NAND FLASH: K9F2G08U0B (256M+8M)x8bitSDRAM:H57V2562GTR-75C x 2 (32M) x 2 网卡: DM9000E 显示器:AT070TN90(7’ TFTLCD)本文档主要参考了XC2440和TX2440的移植手册,并结合自己的移植经验,还有一些帮助资料,更好地解释某些移植步骤的原因。源代码下载地址:/s/1Geq0b移植uboot步骤说明:以下是根据长期的开发经验总结出的uboot移植开发的步骤,供学习者参考,本手册也是大体按照这个步骤进行的。做uboot移植开发,首先要保证uboot能适应自己的硬件平台,然后要能实现在flash上烧写系统和引导系统的功能,这些基本的功能做好以后,就可以给uboot加入一些辅助的功能,使uboot功能更强更方便使用。准备工作解压源码:tar xjvf u-boot-2010.06.tar.bz2源码目录加上所有权限sudo chmod 777 u-boot-2010.06 –R(参数-R表示递归地改变每个子目录下文件的权限)进入源码目录:cd u-boot-2010.06源码结构说明:arch:各种架构CPU相关的文件,类似linux的arch目录arch/arm/cpu:ARM架构的各种CPU的初始化文件,我们用到的是arm920t/s3c24xx arch/arm/include:ARM架构各种CPU相关的头文件,我们用到的是asm/arch-s3c24x0 arch/arm/lib:ARM架构相关的库文件board:常用的主板BSP文件,每一种板对应一个目录,如smdk2410 common:与架构无关的通用函数的实现,包括main函数,各种命令的实现drivers:通用的设备驱动程序fs:文件系统的实现,包括yaffs2、cramfs、ext2、jffs2等include:全局的头文件和主板的配置文件lib:平台无关的通用库文件net:网络协议相关的文件post:开机自检相关的文件tools:uboot自带的工具我们移植的时候,只需要编译和我们目标硬件平台相关的文件,这就需要对编译选项进行配置,告诉系统,需要编译到哪些目录下编译哪些文件,这些都是通过Makefile文件来实现的。首先,打开主目录下的Makefile文件,找到如下内容:smdk2410_config :unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0这个是针对三星smdk2410开发板的配置选项,这个开发板使用的S3C2410处理器,和我们使用的S3C2440处理器是类似的,大部分配置可以通用,但是在某些硬件方面也有一些差别,需要我们自己编写代码,以支持S3C2440处理器。配置各项含义如下:arm:CPU的架构(ARCH) arm920t:CPU的类型(CPU) smdk2410:开发板的型号(BOARD) samsung:开发者/或经销商(VENDER) s3c24x0:片上系统(SOC)配置选项所代表的目录关系说明:ARCH:对应于主目录下的arch/arm目录CPU:对应于arch/arm/cpu目录下的子目录,此值为arm920t,就使用arch/arm/cpu/arm920t目录下的代码BOARD:开发板的主目录,位于board目录下,要和下面的VENDER字段配合使用VENDER:对应于board目录下的子目录,此值为samsung,那么BOARD目录就包含在board/samsung子目录下,BOARD的值为smdk2410,那对应的开发板目录即为:board/samsung/smdk2410;如果VENDER的值为NULL,开发板目录即为:board/smdk2410SOC:对应于是CPU目录下的子目录,此值为s3c24x0,CPU为arm920t,对应的目录为:arch/arm/cpu/arm920t/s3c24x0增加对S3C2440平台的支持修改主目录下的Makefile文件在smdk2410之后仿照smdk2410的配置添加针对smdk2440开发板的配置:smdk2410_config :unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0smdk2440_config :unconfig@$(MKCONFIG)
显示全部