新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > U-Boot在LPC2210上的移植分析

U-Boot在LPC2210上的移植分析

作者:时间:2012-03-22来源:网络收藏

5.4 board/dx2210开发板相关文件

在这个目录中主要包含dx2210.c、config.mk、flash.c、memsetup.S、u-boot.lds几个文件。在 dx2210.c文件中主要工作为初始化开发板,在文件中编写int board_init(void)函数定义各个复用I/O端口的信息、初始化RAM芯片等完成初始化工作。由于在u-boot代码中是用抽象成一种结构体来描述开发板硬件信息以便于移植工作,因此在文件中修改:

gd->bd->bi_arch_number=MACH_TYPE_; //开发板架构ID号

gd->bd->bi_boot_params=0x81000100; //传递给ucinux内核的参数

gd->bd->bi_dram[0].start=PHYS_SDRAM_1;

gd->bd->bi_dram[0].size=PHYS_SDRAM_1_SIZE; //RAM内存配置

u-boot.lds是给Linker程序使用的配置文件,主要修改部分:

SECTIONS

{ .=0x80000000; //起始地址为0x80000000

.=ALIGN(4); //4字节对齐

.text :

{ cpu//start.o (.text)

*(.text) //text段的起始是start.S的text段

memsetup.S汇编文件主要是用来初始化RAM,在memsetup.S文件中配置开发板用到的存储器组,然后根据MT45W4MW16芯片手册驱动RAM;Flash芯片的驱动代码在flash.c文件中,由于开发板的Flash芯片SST39VF160与B2开发板芯片相同,直接复制后即可。

6.生成目标文件完成移植工作

移植工作完成后在SHELL环境下依次运行如下命令:make clean; make dx2210_config;make。成功编译后生成4个映像文件分别是:u-boot.hex文件: 映像原始的INTEL HEX格式文件;u-boot.map文件:y映像的符号表;u-boot.srec文件:映像的S-Record格式文件;System.map文件: U-Boot映像的符号表。使用Flash烧写工具将u-boot.hex文件按照16进制格式下载到Nor Flash中,再将uclinux内核映像文件和根文件系统影响文件init.img烧写到Nor Flash的指定地址后,可以看到如图2所示的存储空间分布:

图2 存储空间映射

其中u-boot映像文件存放在Flash的起始地址0x80000000处,相当于程序的逻辑地址0x0处与硬件确定的复位向量相符合;u-boot在stage2部分将Flash中的内核映像和根文件系统映像复制到从0x81008000开始的2MB内存范围内,空出来的32K内存空间主要来存放uclinux内核的一些全局的数据结构,如启动参数和内核页表等信息。

7.结束语

本文首先阐述了引导程序得基本原理,在介绍了开放源代码程序U-Boot软件基础上,以 ARM7处理器及其相关开发板为例,完成了U-Boot软件的移植工作。前期的启动引导程序的移植工作是嵌入式系统开发的重要环节,在此基础上可以更加深入的进行嵌入式系统开发。

本文作者创新点:本文在详细的分析U-Boot软件的基础上,针对U-Boot软件本身并不支持的ARM7 LPC2210,本文介绍了在U-Boot软件中添加相关代码的方法并完成移植的实例,为更加深入的后续嵌入式开发打下良好基础。

参考文献:

[1] The Denx U-Boot and Linux Guide. http://www.denx.de/twiki/bin/view/DULG/Manual.

[3] 周立功等.ARM嵌入式系统基础教程[M].北京航空航天大学出版社.2005.1; 129-154

[4] 孙琼.嵌入式Linux应用程序开发详解[M].人民邮电出版社.2006.7; 108-128

[5] 白伟平,包启亮.基于ARM的嵌入式Boot Loader浅析[J].微计算机信息,2006,4:99-100


上一页 1 2 3 下一页

关键词: Bootloader U-Boot LPC2210

评论


相关推荐

技术专区

关闭