文档详情

嵌入式系统软件移植与Linux下程序开发剖析.ppt

发布:2016-06-23约1.37万字共107页下载文档
文本预览下载声明
嵌入式系统讲义 第6章 嵌入式系统软件移植与Linux下程序开发 周国运 2007.9 本章主要内容 1、Bootloader及vivi移植 2、嵌入式Linux内核及移植 3、基于Linux的应用程序开发 4、基于Linux的驱动程序开发 5、驱动程序开发实例 6.1 Bootloader 及vivi移植 本节内容 1、Bootloader简介 2、Bootloader工作模式 3、Bootloader启动过程 4、vivi Bootloader源代码分析 5、vivi Bootloader接口命令 6、vivi 源代码修改移植 嵌入式系统软件开发流程 6.1.1 Bootloader简介 Bootloader,为引导加载程序,是嵌入式系统加电后运行的第一段代码,相当于PC机的BIOS。 Bootloader的位置:通常固化在硬件上的某个固态存储设备上,加电后自启动。 Bootloader功能:初始化硬件设备、建立内存空间的映射图,将系统的软、硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 Bootloader在软件的层次位置 Bootloader的地址:在嵌入式系统中,系统在上电或复位时从地址0x0000,0000处开始执行,在这个地址处安排的就是Bootloader。 Bootloader是严重地依赖于硬件而实现的。每种不同体系结构的处理器都有不同的Bootloader。不过Bootloader的发展也趋于支持多种体系结构,如现在比较成熟的vivi、RedBoot和U-Boot等。 几种发布的Bootloader 1、vivi vivi是韩国Mizi公司开发的Bootloader,适用于ARM9处理器。 2、RedBoot RedBoot即红帽(Red Hat)嵌入式调试引导程序,是一种用于嵌入式系统的独立开放源代码引导/装载器。 3、U-Boot U-Boot(Universal Bootloader)由德国DENX小组开发,是一款目前功能较为强大的开源Bootloader程序,它支持多种处理器平台,包括ARM、PowerPC、MIPS等。 6.1.2 Bootloader操作模式 大多数Bootloader都有两种不同的操作模式:“启动加载”模式和“下载”模式。其区别对于开发人员才有意义。 从最终用户的角度看,Bootloader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载模式的区别。 1、启动加载(Bootloading)模式 启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。 启动加载模式是 Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。 2、下载(Downloading)模式 下载方式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。 下载内容及存储:主要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被 Bootloader写到目标机上的FLASH 类固态存储设备中。 下载模式应用场合:Bootloader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用到这种工作模式。 用户应用接口:工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。 如在RedBoot下,将出现“RedBoot”提示符;在vivi Bootloader 下出现“vivi”提示符。 2、下载(Downloading)模式 RedBoot的Bootloader 像RedBoot或U-Boot等功能强大的Bootloader通常都可同时支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。 比如,RedBoot在启动时处于正常的启动加载模式,但是它会延时3秒等待终端用户按下任意键而将RedBoot切换到下载模式。如在等待时间内没有接收到用户按键,则继续启动 Linux 内核。 6.1.3 Bootloader启动过程 Bootloader的启动可以分为两个阶段 1、第一阶段 阶段1主要包含依赖于CPU体系结构及硬件设备的初始化等。通常都用汇编语言来实现。这个阶段的任务有5: (1)、基本的硬件设备初始化 这是 Bootloader 一开始就执行的操作,其目的是为阶段2 的执行、以及随后kernel 的执行准备好一些基本的硬件
显示全部
相似文档