好文档 - 专业文书写作范文服务资料分享网站

基于ARM嵌入式系统的通用bootloader的设计与实现-.

天下 分享 时间: 加入收藏 我要投稿 点赞

基于ARM 嵌入式系统的通用bootloader 的设计与实现

绪 论:

随着嵌入式产品中高端微处理器ARM 的加入以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整的构架。现在,专门为嵌入式产品开发的各个操作系统层出不穷,WINDOW CE,POCKET PC,Linux 等等,各界关注地也特别多。然而,如何进行加载操作系统这个问题却很少有人提出。这就产生了另一个相关主题bootloader 。Bootloader 本身的功能就是引导与加载内核镜像。如何实现bootloader 的基本功能,如何针对基于ARM 体系的微处理器来实现bootloader ,就成为本课题的一个基本论题。,除了基本功能,bootloader 还能有什么更加具体的扩展功能来方便各个系统开发者,都属于本课题讨论的范畴。

第一章:ARM 简介 第一节:ARM 微处理器

嵌入式系统的核心部件是各种类型的嵌入式处理器。目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30多个系列。嵌入式微处理目前主要有Am186/88、386EX 、SC-400、Power PC、MIPS 、ARM 系列等。其中,ARM 是一种今年来在嵌入式系统中有着强大影响力的微处理器设计商和制造商,ARM 的设计非常适合与小的电源供电系统。特别是,随着近年来,微处理器结构由RISC (精简指令集)全面取代传统的CISC (复杂指令集),因为ARM 是著名的RISC 的拥护者。

采用RISC 结构的ARM 微处理器一般具有如下特点: 1.体积小、低功耗、低成本、高性能;

2.支持Thumb (16位)/ARM(32位)双指令集,能很好地兼容8/16位器件;

3.大量使用寄存器,指令执行速度更快; 4.大多数数据操作都在寄存器中完成; 5.寻址方式灵活简单,执行效率高; 6.指令长度固定;

下图所示的是ARM 构架图。它由32位ALU 、若干个32位通用寄存器以及状态寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令译码以及控制逻辑、指令流水线和数据/地址寄存器组成。

1.ALU :它有两个操作数锁存器、加法器、逻辑功能、结果以及零检测逻辑构成。

2.桶形移位寄存器:ARM 采用了32×32位的桶形移位寄存器,这样可以使在左移/右移n 位、环移n 位和算术右移n 位等都可以一次完成。

3.高速乘法器:乘法器一般采用“加一移位”的方法来实现乘法。ARM 为了提高运算速度,则采用两位乘法的方法,根据乘数的2位来实现“加一移位”运算 ;ARM 高速乘法器采用32×8位的结构,这样,可以降低集成度(其相应芯片面积不到并行乘法器的1/3)。

4.浮点部件:浮点部件是作为选件供ARM 构架使用。FPA10浮点加速器是 作为协处理方式与ARM 相连,并通过协处理指令的解释来执行。 控制器:ARM 的控制器采用的是硬接线的可编程逻辑阵列PLA 。

ARM 构架图

处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式的切换时,应用程序可以产生异常处理,在异常处理过程中进行模式的切换。这种体系结构可以使操作系统控制整个系统的资源。

ARM 处理器共有7种运行模式,如下表所示: 第二节:ARM 最小系统的描述

对于任何一个系统,都希望不是一个虚拟系统,也就是说系统都希望是特定系统,即有具体的CPU ,有具体的存储芯片以及有各种具体的外围控制模块。对于本课题来说,最终的bootloader 也必须在具体的系统上运行起来。但是,任何一个

ARM 系统,在没有特定指定的条件下,仍然可以将通用特性(一些通用基本控制模块)描述出来,在此称之为ARM 最小系统,见下图:

ARM 最小系统

第二章:Bootloader 的概念 第一节:感念介绍

bootloader 就是在操作系统内核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。

bootloader 是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需求的bootloader 是不同的;除了体系结构,bootloader 还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU 构建,运行在其中一块电路板上的bootloader ,未必能够运行在另一块电路开发板上。

一个嵌入式Linux 系统从软件的角度看通常可以分为四个层次:引导加载程序、Linux 内核、文件系统、用户应用程序。

第二节:bootloader 的操作模式

大多数bootloader 都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别对于开发人员才有意义。但从最终用户的角度看,bootloader 的作用永远就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。

启动加载模式:这种模式也称为“自主”模式,即bootloader 从目标机上的某个固体存储设备上将操作系统加载到RAM 中运行,整个过程没有用户的介入。这种模式是bootloader 的正常工作模式,因此当以嵌入式产品发布的时候,bootloader 必须工作在这种模式下。

下载模式:在这种模式下,目标机上的bootloader 将通过串口或者网络连接或者其它通信手段从主机下载文件,比如:下载内核镜像和根文件系统镜像等。从主机下载的文件通常首先被bootloader 保存到目标机的RAM 中,然后被bootloader 写到目标机上的FLASH 类固态存储设备中。Bootloader 的这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用bootloader 的这种

基于ARM嵌入式系统的通用bootloader的设计与实现-.

基于ARM嵌入式系统的通用bootloader的设计与实现绪论:随着嵌入式产品中高端微处理器ARM的加入以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整的构架。现在,专门为嵌入式产品开发的各个操作系统层出不穷,WINDOWCE,POCKETPC,Linux等等,各界关注地也特别多。然而,如何进行加载操作系统这个
推荐度:
点击下载文档文档为doc格式
2lsdj6sf8p7e16g2f5026bod04q39t00oz7
领取福利

微信扫码领取福利

微信扫码分享