vivi论文

基于ARM平台的引导程序分析与移植研究

摘要:引导程序的部署与移植是嵌入式系统软件开发的重要环节,它是软硬件衔接的桥梁。本文以S3C2440处理器和嵌入式Linux为平台,对嵌入式系统中的引导程序VIVI进行分析和移植研究,总结了VIVI在S3C2440A处理器上的移植方法和步骤,并解决了移植过程中遇到的各种问题,通过了具体测试,取得了较好效果。

1.ARM平台软件体引导程序分析

1.1嵌入式系统软件体系构架

嵌入式平台是一种软硬件结合的平台,其特点是具有专门的嵌入式操作系统。比如Linux 操作系统,WinCE操作系统,还有目前比较流行的Android操作系统等。正因为嵌入式平台拥有了专用的操作系统,所以开发应用软件和PC一样方便、快捷。嵌入式系统软件可分为下列四个层次。

1.2 ARM嵌入式平台特点分析

ARM是全球著名的32位嵌入式RISC芯片内核的设计公司,其开发的ARM嵌入式内核被全球各大芯片公司厂商采用。基于ARM的微处理器采用RISC架构,具有体积小、低功耗、低成本、高性能的特点,并支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件,使用大量的寄存器,其寻址方式灵活简单,执行效率高,指令长度固定。

此次移植研究所使用的友善之臂Mini2440开发板就使用了由三星公司生产的S3C2440A芯片。该芯片采用了ARM920t的内核,0.13u m的CMOS标准宏单元和储存器单元。采用了新的总线架构Advanced Micro Montroller Bus Architecture(AMBA)。

1.3引导程序BootLoader介绍

嵌入式BootLoader就是引导加载程序,它的核心任务是引导嵌入式操作系统,类似于PC上BIOS的作用。对于嵌入式系统,BootlLoader是基于特定的硬件平台实现的。不同的处理器架构都有不同的BootlLoader。而ARM平台支持多种BootlLoader,在此我们以vivi 为例,分析vivi在ARM平台的移植过程。

ARM平台多使用Flash为存储介质,包括NOR Flash、NAND Flash和其他半导体盘。BootLoader一般存放在Flash的底端或者顶端,必须使BootLoader的入口位于处理器上电执行第一条指令的位置。

2.基于ARM平台的BootLoader——vivi分析

Vivi是韩国Mizi公司开发的BootLoader,适用于ARM9处理器。具有两种工作模式:启动加载模式和下载模式。启动加载模式可以在设定的一段时间后自行启动内核。在下载模式下,vivi提供了一个命令行接口,通过该接口可以使用一些命令。

2.1 嵌入式交叉编译环境搭建

嵌入式交叉编译环境是指在PC上建立基于开发板的程序编译环境,从而方便在PC机上对vivi的编译。

解压tar jxvf arm-linux-gcc-4.4.3.tar.gz

修改PATH 变量,将arm-Linux工具链目录加入到环境变量PATH中:

vi /etc/profile文件,

添加pathmunge /usr/local/arm/4.4.3/bin即可。

# Path manipulation

if [ `id -u` = 0 ]; then

pathmunge /sbin

pathmunge /usr/sbin

pathmunge /usr/local/sbin

pathmunge /usr/local/arm/4.4.3/bin

fi

设置环境变量后,注销系统,使变量生效。

2.2 vivi的编译过程分析

将开发板提供的vivi的源代码解压到指定文件夹中,vivi在编译的同时也需要内核的一部分头文件,所以把内核linux-2.6.32.2-mini2440-20100921.tar.gz源代码也解压到同一路径下。然后需修改makefile里的一些变量设置:

输入Vi /vivi/makefile

根据开发板进行vivi的配置,完成后,再输入“make”正式开始编译,完成后,如果不报错,在/vivi里面就会生成vivi映像文件,既后面要烧写至Flash上的BootLoader文件。

移植完成后,vivi就能正常引导Linux系统内核。

相关主题
相关文档
最新文档