




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于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位通用寄存器以及状态寄存器、328位乘法器、3232位桶形移位寄存器、指令译码以及控制逻辑、指令流水线和数据/地址寄存器组成。1 ALU:它有两个操作数锁存器、加法器、逻辑功能、结果以及零检测逻辑构成。2 桶形移位寄存器:ARM采用了3232位的桶形移位寄存器,这样可以使在左移/右移n位、环移n位和算术右移n位等都可以一次完成。3 高速乘法器:乘法器一般采用“加一移位”的方法来实现乘法。ARM为了提高运算速度,则采用两位乘法的方法,根据乘数的2位来实现“加一移位”运算 ;ARM高速乘法器采用328位的结构,这样,可以降低集成度(其相应芯片面积不到并行乘法器的1/3)。4 浮点部件:浮点部件是作为选件供ARM构架使用。FPA10浮点加速器是作为协处理方式与ARM相连,并通过协处理指令的解释来执行。控制器:ARM的控制器采用的是硬接线的可编程逻辑阵列PLA。 A31:0 控制地址寄存器 指令译码及控制 增值器 寄存器堆 A L U 总 乘法器 线 线 总 A 桶式 B 移位器 总 线 ALU 数据输出寄存器 数据输入寄存器 D31:0ARM构架图处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式的切换时,应用程序可以产生异常处理,在异常处理过程中进行模式的切换。这种体系结构可以使操作系统控制整个系统的资源。ARM处理器共有7种运行模式,如下表所示:第二节:ARM最小系统的描述对于任何一个系统,都希望不是一个虚拟系统,也就是说系统都希望是特定系统,即有具体的CPU,有具体的存储芯片以及有各种具体的外围控制模块。对于本课题来说,最终的bootloader也必须在具体的系统上运行起来。但是,任何一个ARM系统,在没有特定指定的条件下,仍然可以将通用特性(一些通用基本控制模块)描述出来,在此称之为ARM最小系统,见下图:处理器模式处理器模式描述用户模式(User,usr)正常程序执行的模式快速中断模式(FIQ,fiq)用于高速数据传输和通道处理普通中断模式(IRQ,irq)用于通常的中断处理监管模式(Supervisor,svc)供操作系统使用的一种保护模式数据访问中止模式(Abort,abt)用于虚拟存储及存储保护未定义指令中止模式(Undefined,und)用于支持通过软件方针硬件的协处理器系统模式(System,sys)用于运行特权级的操作系统任务 Memory 控制器 GPIO控制模块 系 外 统 总线桥接 围 总 串口 线 总 线ARM core 中断控制器 中断ARM最小系统第二章:Bootloader的概念第一节:感念介绍bootloader就是在操作系统内核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。bootloader是依赖于硬件而实现的,特别是在嵌入式系统中。不同的体系结构需求的bootloader是不同的;除了体系结构,bootloader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的bootloader,未必能够运行在另一块电路开发板上。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程序、Linux内核、文件系统、用户应用程序。第二节:bootloader的操作模式大多数bootloader都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别对于开发人员才有意义。但从最终用户的角度看,bootloader的作用永远就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载模式:这种模式也称为“自主”模式,即bootloader从目标机上的某个固体存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。这种模式是bootloader的正常工作模式,因此当以嵌入式产品发布的时候,bootloader必须工作在这种模式下。下载模式:在这种模式下,目标机上的bootloader将通过串口或者网络连接或者其它通信手段从主机下载文件,比如:下载内核镜像和根文件系统镜像等。从主机下载的文件通常首先被bootloader保存到目标机的RAM中,然后被bootloader写到目标机上的FLASH类固态存储设备中。Bootloader的这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用bootloader的这种工作模式。工作于这种模式下的bootloader通常都会向它的中断用户提供一个简单的命令行接口。第三节:模式设计对于普通用户来说只需要bootloader的启动加载模式,但是对于开发者来说,则需要下载模式,因为他们需要时时刻刻地进行一些镜像的更新。为了在两者之间做到兼顾,本课题既支持启动加载模式,也支持下载模式,具体思路为:在bootloader做完一些硬件初始化工作后,而在加载内核镜像之前,先在一定的时间内等待有没有用户有键盘输入,如果没有,则为启动加载模式,直接加载内核镜像进行启动;如果有,则进入命令行格式,这时开发者就可以根据自己的需要以及bootloader的支持情况,做一些其他的工作。模式的转换设计主要在阶段2中实现。综合起来,整个bootloader的实现流程可以如下图所示: 基本硬件初始化 阶段1 拷贝阶段2镜像至RAM 进入阶段2开始执行 扩展功能所需硬件初始化 拷贝内核镜像至RAM中 阶段2 等待50ms 看是否串口有 输入 是 否 进入下载模式 跳转至内核镜像 接收命令第三章:总结本文主要介绍的是基于ARM嵌入式系统通用bootloader的设计与实现。由于bootloader是与具体的硬件系统紧密相关的,所以在具体的实现上,主要以Intel Xscale 核心的PXA255为处理器构建的硬件系统为硬件平台,以Linux为操作系统来阐明一个bootloader的设计过程。而对于ARM系统的通用bootloader,本文则从理论上来阐述对于一个ARM系统,bootloader所要实现的功能以及在实现bootloader时的一些软硬件上的规定,并且结合实现的bootloder,进一步的说明如何通过已实现的bootloader来进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司生产流程管理制度
- 光轨道角动量光子晶体光纤的设计及性能分析
- 2025授权经销合同范本
- 情感分析与拍卖平台用户体验优化-洞察阐释
- 2024年上海青浦教育系统招聘事业编制教师真题
- 神经内科帕金森病基础知识点归纳
- 2024年安康紫阳县特岗教师招聘真题
- 2025年四川轻化工大学数学竞赛试题
- 幼儿园保育工作相关表格与工作制度:实验幼儿园户外活动检查记录表
- 基于类间关系建模的异常区域分割算法研究
- 2025版 初中 语文 学考复习 第三部分 模拟练《江西省2025年初中语文学业水平考试模拟练(三)》课件
- 2024年危险化学品生产经营单位其他从业人员考试题库附答案
- DB45T 2364-2021 公路路基监测技术规范
- 造价咨询进度控制措施全
- 电力储能用飞轮储能系统技术规范
- 必修二公式结论默写-高中数学人教A版(2019)必修第二册
- 2024年成人高考成考(专升本)医学综合试卷与参考答案
- 园林绿化风险因素辨识及防控措施考核试卷
- 人力资源购销合同模板
- 白酒的品评-讲义-
- 广东省深圳市2024年中考英语真题(含答案)
评论
0/150
提交评论