Uboot在在S3C2440上的移植上的移植
通过分析Uboot的文件结构及其启动流程,详细给出了Uboot在基于ARM920T开发板上的移植方案,包括编译、
调试全过程,最终能够在Uboot命令方式下加载映像文件,完成Linux内核与yaffs映像文件的调试,具有
Bootloader移植的通用性。
摘摘 要:要: 通过分析
关键词:关键词: Uboot;
1 Uboot移植环境准备移植环境准备
1.1 移植平台的硬件组成移植平台的硬件组成
硬件平台是ARM9的体系结构,ARM920T的CPU, SOC芯片是三星的S3C2440,支持Nand Flash与Nor Flash的可选启动
方式,其主要硬件资源如表1所示[1]。
支持Nand Flash与Nor Flash启动,可以通过跳线来选择启动方式。Nand Flash启动时,最开始4 KB数据被硬拷贝到内部
Boot Internal SRAM,且被映射到nGCS0的片选空间0x0000,0000—0x0800,0000;Nor Flash方式启动时,它直接被映射到
nGCS0的片选空间。所以,在Uboot移植时,要考虑将Uboot烧写到Nor flash上还是Nand Flash上。
1.2 Uboot工作原理工作原理
Uboot的整体结构如图1所示。
从图1可以看出,这种分层结构的Uboot分模块化了,给移植带来了很大的方便。由于协议层与应用层是与目标硬件无关
的,因此移植工作主要集中在物理层和驱动层上面的修改。而Uboot支持串口下载、网络下载,并提供了很多交互式命令。整
个Uboot编译、连接过程如下:
(1)创建编译环境
在MAKEFILE中会调用根目录下的mkconfig文件,如下:
MKCONFIG:= $(SRCTREE)/mkconfig
qq2440v3_config:unconfig
@$(MKCONFIG)$(@:_config=)arm ARM920T qq2440v3 NULL s3c24x0
Mkconfig文件引用传入的参数$1=qq2440v3、$2=arm、$3=arm920t、$4=qq2440v3、$5=NULL、$6=s3c24x0,流程如图
2所示。