欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    系统引导程序(Bootloader)的设计与实现毕业设计说明书.doc

    • 资源ID:2392250       资源大小:596KB        全文页数:50页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    系统引导程序(Bootloader)的设计与实现毕业设计说明书.doc

    毕业设计说明书 系统引导程序(Boot-loader)的设计与实现 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 摘 要随着移动设备的流行和发展,嵌入式系统已经成为一个热点。它并不是最近出现的新技术,只是随着微电子技术和计算机技术的发展,微控制芯片功能越来越强大,而嵌入微控制芯片的设备和系统越来越多,从而使得这种技术越来越引人注目。它对软硬件的体积大小、成本、功耗和可靠性都提出了严格的要求。嵌入式系统的功能越来越强大,实现也越来越复杂,随之出现的就是可靠性大大降低。最近的一种趋势是一个功能强大的嵌入式系统通常需要一种操作系统来给予支持,这种操作系统是已经成熟并且稳定的,可以是嵌入式的Linux,WINCE等等。相应地,这也给处理器提出了要求。当今,众多的半导体厂商都生产基于ARM体系结构的通用微处理芯片,ARM技术已经在当今的嵌入式微处理器领域中占据了它的领先地位。究其原因,它的以精简指令构架为主又不放弃与复杂指令平衡的设计,使得在获得高性能的同时又能做到低功耗。本文所要研究的就是基于ARM嵌入式系统bootloader的设计与实现。Bootloader是嵌入式系统中执行在内核操作系统前的一段代码,它的基本作用就是加载内核镜像。在实践平台上,本课题硬件上采用了ARM9系列的S3C2440A作为处理器,具有一定的代表性,并以此来搭建课题的硬件实践平台,软件上以Linux作为操作系统。关键词 : 嵌入式系统; ARM; BootloaderABSTRACT With the popularity of mobile devices and development of embedded systems has become a hot spot.It is not a recent emergence of new technology, but with the microelectronics and computer technology, more and more micro-control chip functions, and embedded micro-controller chip devices and systems more and more, making this technology moreand more noticeable.The volume of its hardware and software size, cost, power consumption and reliability have made stringent requirements.More powerful embedded systems to achieve more and more complex, the resulting reliability is greatly reduced.A more recent trend is a powerful embedded systems usually require an operating system to support this operating system is already mature and stable, can be embedded Linux, WINCE and so on. Accordingly, it also made a request to the processor.Today, many semiconductor manufacturers are producing generic architecture based on ARM micro-processing chip, ARM technology has in today's embedded microprocessors occupy its leading position.The reason is mainly that it's reduced instruction set architecture and complex instructions not to give a balanced design, makes do while achieving high performance with low power consumption. This paper is to study the ARM-based embedded system design and implementation of bootloader.Bootloader is the implementation of embedded systems in the period before the operating system kernel code, and its basic function is to load the kernel image. In practice platform, the subject of hardware S3C2440A used as the ARM9 family processor, with a certain representation, and in order to build a practical platform hardware issues, software to Linux as the operating system.Keywords: embedded system; ARM; Bootloader目 录摘 要IABSTRACTII1 绪言11.1 研究背景11.2 主要研究工作21.3 主要内容22 ARM处理器简介32.1 ARM处理器32.1.1 ARM处理器介绍32.2 ARM处理器的优势72.2.1 RISC指令集72.2.2 低功耗83 ARM体系结构介绍103.1 ARM core描述103.2 ARM处理器工作状态及模式113.2.1 ARM处理器模式113.2.2 ARM寄存器组介绍123.2.3 ARM存储系统153.2.4 ARM指令集介绍163.2.5 ARM体系的异常中断173.3 ARM最小系统描述194 Bootloader的概念204.1 Bootloader的基本概念204.2 Bootloader的操作模式214.3 Bootloader的概念扩展214.4 ARM Bootloader的共性225 Bootloader的设计与实现245.1 课题研究的平台环境245.1.1 硬件平台245.1.2 软件环境以及软件开发工具255.2 Bootloader的总体设计265.2.1 阶段设计265.2.2 地址规划设计265.2.3 模式设计275.3 Bootloader的具体实现305.3.1 阶段1的代码实现305.3.2 阶段2的代码实现345.3.3 代码的编译376 总结与展望40参考文献41致 谢421 绪言1.1 研究背景随着人民生活水平提高带来巨大的消费需求、信息化进程的推进、电信运营业的发展,信息产业市场空间将得到进一步拓展。在这良好的经济环境下,嵌入式系统领域得到进一步的拓宽与发展。嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可剪裁来适应系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各行业的具体应用相结合后的产物,它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统广泛地应用在信息终端、工业控制和信息家电等领域。在嵌入式系统的开发中,嵌入式软件是实现各种系统功能的关键,也是计算机技术最活跃的研究方向之一。不同应用对嵌入式软件系统有不同的要求,并且随着计算机技术的发展,这些要求也在不断变化。通常,应用系统对嵌入式软件的基本要求是体积小、执行速度快、具有较好的可剪裁性和可移植性。特别地,现在对嵌入式软件来说,都需要操作系统的支持。简单的嵌入式系统根本没有操作系统,而只是一个控制循环。但是,当系统变得越来越复杂时,就需要一个嵌入式操作系统来支持,否则应用软件就会变得过于复杂,使开发难度过大,安全性和可靠性都难以保证。嵌入式软件,特别是操作系统的支持,使得对硬件的要求越来越高。针对嵌入式系统的各种微处理器遍布各个角落。特别是采用ARM技术IP核的各种微处理器遍及各类产品市场。ARM技术以其较高的性能和功效,使得在嵌入式系统中得到广泛应用。世界上几乎所有的主要半导体厂商都生产基于ARM体系结构的通用芯片,如TI,Motorola,Intel,NS,Ateml,Philips,SAMSUNG等。目前,ARM芯片广泛应用于汽车电子、保安设备、无线通信、智能手机等多个领域。应该说,ARM无处不在。随着嵌入式产品中高端微处理器ARM的加入以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整的构架。现在,专门为嵌入式产品开发的各个操作系统层出不穷,WINDOW CE,POCKET PC,Linux等等,各界关注地也特别多。然而,如何进行加载操作系统这个问题却很少有人提出。这就产生了另一个相关主题bootloader。Bootloader本身的功能就是引导与加载内核镜像。如何实现bootloader的基本功能,如何针对基于ARM体系的微处理器来实现bootloader,就成为本课题的一个基本论题。1.2 主要研究工作本文的题目尽管涉及到ARM系统,但是,由于bootloader的特殊性以及个别性,即bootloader与具体的处理器以及具体的硬件系统紧密联系在一起,需要实际的完整硬件系统支持,而基于ARM 920T体系的芯片实在太多,每款芯片除了具有基本的ARM体系结构的通性外,通常还具有各自独特的特性,还需分别处理。因此,在真正的开发环节上,本课题主要基于ARM 920T体系构架的S3C2440A处理器,很具有代表性,并由此在理论上扩展到整个ARM系统。在实现过程中具体研究开发如下: 选择基于ARM 920T构架的S3C2440A芯片作为处理器,并以此构建一套硬件开发系统 与实际项目接轨,选择GNU的linux作为系统的操作系统 在上述软硬件开发系统上实现基于S3C2440A的bootloader的基本功能,即引导加载内核镜像的功能 在ARM920T的构架基础上在理论上扩展到ARM系统,分析对于ARM系统,bootloader实现的一些共性以及一些限制 分析对于实现bootloader,移植到其他ARM平台的相关处理1.3 主要内容根据所涉及的主要研究工作,本文的内容主要包括一下几个部分:第2章简要叙述ARM世界的一些主流处理器以及其优势特点;紧接着第3章则详细描述了ARM的体系结构,指令系统;第4章的内容是介绍bootloader的概念,并专门针对ARM bootloader进行了详细说明;第5章在介绍软硬件平台之后详细介绍了bootloadr的实现;最后一章进行一下总结与展望。2 ARM处理器简介嵌入式系统的核心部件是各种类型的嵌入式处理器。目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30多个系列。嵌入式微处理目前主要有Am186/88、386EX、SC-400、Power PC、MIPS、ARM系列等。其中,ARM是一种近年来在嵌入式系统中有着强大影响力的微处理器设计商和制造商,ARM的设计非常适合与小的电源供电系统。特别是,随着近年来,微处理器结构由RISC(精简指令集)全面取代传统的CISC(复杂指令集),因为ARM是著名的RISC的拥护者。2.1 ARM处理器ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术只是产权(IP)核的微处理器,即通常我们所说的ARM微处理器,已经遍及工业控制、消费类电子产品、通信系统、无线系统等各类产品市场,基于ARM技术的微处理应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生长各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使得整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。2.1.1 ARM处理器介绍ARM处理器目前包括下面几个系列的处理器产品以及其他厂商实现的基于ARM体系结构的处理器:ARM7系列、ARM9系列、ARM9E系列、 ARM10E系列、SecurCore系列、Intel的Xscale系列、Intel的StrongARM系列。ARM体系有变种,也就是说有些版本具备特定功能,在各个版本的版本号上可以体现出来,说明如下:T: 支持16位压缩指令集Thumb;D: 支持片上Debug;M:内嵌硬件乘法器(Multiplier),增加用于长乘法操作的指令;I: 嵌入式ICE,支持片上断点和调试点;E:增强型DSP指令;ARM构架诞生至今,已经产生了多次变革,每一次都带来性能上的极大飞跃,其过程包括: V1构架(ARM1) 基本的数据处理指令(无乘法) 字节、半字和字的Load/Store指令转移指令,包括子程序的调用和链接指令软件中断指令寻址空间64MB V2构架(ARM2,ARM3)增加乘法和乘法指令增加支持协处理器的操作增加快速中断模式增加SWP/SWPB的存储器和寄存器交换指令 V3构架(ARM6)增加了MRS/MSR指令,访问新增的CPSR/SPSR寄存器增加了异常处理返回寻址空间4GB V4构架(ARM7, ARM9)增加符号化和非符号化半字及符号化字节的存取指令增加16位的Thumb指令完善软件中断SWI指令 V5构架(ARM10)带有链接和交换的转移BLX指令计数前导零CLZ指令BRK中断指令增加了一些信号处理的指令 V6构架增加了SIMD功能扩展,为包括音频/视频处理在内的应用系统提供优化功能接下来就简要介绍一下各主要系列处理器的特点。 (1)ARM7微处理器系列ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点: 具有嵌入式ICERT逻辑,调试开发方便。 极低的功耗,适合对功耗要求较高的应用,如便携式产品。 能够提供0.9MIPS/MHz的三级流水线结构。 代码密度高并兼容16位的Thumb指令集。 对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级。 主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。(2)ARM9微处理器系列ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点: 5级整数流水线,指令执行效率更高。 提供1.1MIPS/MHz的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。 (3)ARM9E微处理器系列ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。ARM9E系列微处理器的主要特点如下: 支持DSP指令集,适合于需要高速数字信号处理的场合。 5级整数流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 支持VFP9浮点处理协处理器。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 主频最高可达300MIPS。ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。(4)ARM10E微处理器系列ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。ARM10E系列微处理器的主要特点如下: 支持DSP指令集,适合于需要高速数字信号处理的场合。 6级整数流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 支持VFP10浮点处理协处理器。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力 主频最高可达400MIPS。 内嵌并行读/写操作部件。ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。(5)StrongArm微处理器系列Intel StrongARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。Intel StrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品(6)Intel Xscale微处理器系列有关Intel Xscale微处理器系列,会在后面相关篇幅中进行介绍。2.2 ARM处理器的优势采用RISC结构的ARM微处理器一般具有如下特点:1 体积小、低功耗、低成本、高性能;2 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8/16位器件;3 大量使用寄存器,指令执行速度更快;4 大多数数据操作都在寄存器中完成;5 寻址方式灵活简单,执行效率高;6 指令长度固定;ARM处理器之所以能够广泛应用于各个领域,与以上所列的各个特点密切相关,综合起来,主要包括以下几点。2.2.1 RISC指令集 传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20的指令会被反复使用,占整个程序代码的80。而余下的80的指令却不经常使用,在程序设计中只占20,显然,这种结构是不太合理的。基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念,RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。到目前为止,RISC体系结构也还没有严格的定义,一般认为,RISC体系结构应具有如下特点: 采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种。 使用单周期指令,便于流水线操作执行。 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。ARM主要使用32位的RISC指令,但是指令代码利用率低,ARM为了弥补此不足,在新型ARM构架(V4T版本以上)定义了16位的Thumb指令集。Thumb指令集比通常的8位和16位RISC/CISC处理器具有更好的代码密度,而芯片面积只增加6,可使程序存储器更小。另外,为了加速通信和多媒体中有关数字信号的处理,ARM处理器在RISC的基础上增加了许多原属DSP核中的关键部件。双核协同工作,各用所长,有效地提高了数据处理能力核传输速度,但是RISC+DSP分立的双核结构存在两核之间互相通信的困难和分别编程的麻烦,为此发展了两核融合在一起的单核结构,同时将指令集也合二为一,简化编程提高效率,将CPU提升到可快速运算多媒体的算法,实现许多音视频的解码功能。2.2.2 低功耗 由于ARM架构的处理器主要用于手持式嵌入式系统之中,因此ARM构架在设计中十分注意低电压、低功耗这一点,因而在手持式嵌入式系统得到广泛的应用。ARM架构的设计采用了以下一些措施: 降低电源电压 减少门的翻转次数,当某个功能电路不需要时,禁止门翻转 减少门的数目,即降低芯片的集成度 降低时钟频率ARM还其他采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积: 所有的指令都可以根据前面的执行结果决定是否被执行,从而提高指令的执行效率; 可用加载/存储指令批量传输数据,以提高数据的传输效率; 可在一条数据处理指令中同时完成逻辑处理和移位处理; 在循环处理中使用地址的自动增减来提高运行效率;ARM的低功耗,使得ARM在专门针对嵌入式系统的处理器市场中始终处于有利的地位。一组典型数据是:对于ARM7系列处理器,当核电压是3.3V时,每MHz,其功耗只为1.1mW。3 ARM体系结构介绍在介绍具体的ARM Bootloader的实现之前,首先介绍一下ARM的体系结构,因为Bootloader是与处理器芯片紧密相连的。为了更好的在后面篇幅中介绍实现,先简单介绍相关的体系结构以及相关指令集。3.1 ARM core描述尽管本本文实现主要涉及软件上的开发,但是软件上代码的实现更多的都涉及芯片构架,因此在这里简要介绍一下一般ARM core构架。下图所示的是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相连,并通过协处理指令的解释来执行。5. 控制器:ARM的控制器采用的是硬接线的可编程逻辑阵列PLA。6. 寄存器:具体参考下节相关介绍。 不同的ARM core可能还有所不同。因此,图2.1描述的仅仅针对一般而言。 图 2.1 ARM构架图3.2 ARM处理器工作状态及模式本节主要简单介绍ARM处理器模式,ARM寄存器组,ARM存储系统,ARM指令集,ARM体系异常中断等内容。3.2.1 ARM处理器模式ARM处理器共有7种运行模式,如表2.1所示:表格 3.1 ARM处理器模式 除了用户模式之外的其他6种处理器模式称为特权模式(Privileged Modes)。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他5种特权模式又称为异常模式。处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式的切换时,应用程序可以产生异常处理,在异常处理过程中进行模式的切换。这种体系结构可以使操作系统控制整个系统的资源。当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保证了程序运行状态)不被破坏。系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式的切换,它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式下的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。3.2.2 ARM寄存器组介绍 ARM处理器一般共有37个寄存器,其中包括: 31个通用寄存器,包括程序计数器(PC)在内,这些寄存器都是32位寄存器; 6个状态寄存器,这些寄存器也是32位寄存器;上一节已经说过,ARM处理器共有7种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器。任意时刻(也就是任意的处理器模式下),可见的寄存器包括15个通用寄存器(R0R14)、一个或者两个状态寄存器以及程序计数器(PC)。在所有的寄存器中,有些是各模式共用的同一个物理寄存器;有些寄存器是各模式自己拥有的独立的物理寄存器。图3.1表示了各处理器模式下的可见寄存器:图3.1 ARM状态下的寄存器组从图3.1中可以看出,通用寄存器R0R7在所有的处理器模式下指的都是同一个物理寄存器,而对于R8R12寄存器组,除了在快速中断模式下有自己专有的物理寄存器,其它模式下也共有统一物理寄存器。R13寄存器对应6个不同的物理寄存器,即除了前面提过的用户模式与系统模式共用一个寄存器外,其它模式都有相应的物理寄存器;一般地,R13寄存器在ARM中通常用作栈指针,在ARM指令中这只是一种习惯的用法,并没有任何指令强制性的使用R13作为栈指针。R14寄存器又被称为连接寄存器(Link Register,LR),在ARM体系中有下面两种特殊的作用: 每一种处理器模式自己的物理R14中存放当前子程序的返回地址。当通过跳转指令调用子程序时,R14被设置为该子程序的返回地址;在子程序中,把R14的指赋值到程序计数器PC中时,子程序返回。 当异常中断发生时,该异常模式特定的物理R14被设置成该异常模式将要返回的地址,对于有些异常模式,R14的值可能与将返回的地址有个常数的偏移量。 程序计数器R15又被记作PC。由于ARM采用了流水线机制,当正确读取了PC的值时,该值为当前指令地址加8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。由于ARM指令是字对齐的,PC值的第0位和第1位总为0。CPSR(当前程序状态寄存器)可以在任何处理器模式下被访问。它包含了标志位、中断禁止位、当前处理器模式标志以及其它的一些控制和状态位。每一种处理器异常模式下都有一个专用的物理状态寄存器,称为SPSR(备份程序状态寄存器)。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断返回退出时,可以用SPSR种保存的值来恢复CPSR。由于用户模式和系统模式不是异常中断模式,所以它们没有SPSR。当用户模式或者系统模式中访问SPSR,将会产生不可预知的结果。SPSR与CPSR的格式相同,CPSR的格式如图3.2所示:图3.2程序状态寄存器N(Negative)、Z(Zero)、C(Carry)、V(Overflow)统称为标志位。大部分的ARM指令可以根据CPSR中的这些条件标志位来选择性地执行。各条件标志位的具体含义如下:N:当两个补码表示的有符号整数运算时,N1表示运算的结果为负数;N0表示运算结果为正数或零;Z:Z1表示运算结果为零;Z0表示运算的结果不为零;C:在加法指令中,当结果产生了进位,则C1;其他情况下C0; 在减法指令中,当运算中发生借位,则C0;其他情况下C0;V:对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V1表示符号位溢出。 CPSR的低8位称为控制位,当异常中断发生时这些位发生改变。在特权模式下,软件可以修改这些控制位: I:普通中断禁止位;I1时禁止IRQ中断。 F:快速中断禁止位;F1时禁止FIQ中断。T:对于ARMv4以及更高的版本的T系列的ARM处理器 T0表示执行ARM指令T1表示执行Thumb指令 对于ARMv5以及更高版本的非T系列的ARM处理器 T=0表示执行ARM指令 T1表示强制下一条执行的指令产生为定义指令中断 Modes位控制处理器模式,在这不再赘述。3.2.3 ARM存储系统这里仅仅介绍ARM编程模型中与存储系统相关的一些概念。(1)ARM体系中的存储空间ARM体系中使用单一的平板地址空间。该地址空间的大小232个8位字节。这些字节单元的地址是一个无符号的32位数值,其取值范围为0到2321。ARM的地址空间也可以看作是230个32位的字单元。这些字单元的地址可以被4整除,也就是说该地址的低两位为0b00。地址为A的字数包括地址A、A+1、A+2、A+3这4个字节单元的内容。(2)ARM的存储器格式在ARM体系中,每个字单元中包含4个字节单元或者两个半字单元,其中1个半字单元中包含两个字节单元。但是在字单元中,4个字节哪一个是高位字节,哪一个是低位字节,则有两种不同的格式:big-endian格式和little-endian格式。在big-endian格式中,对于地址为A的字单元包括字节单元A、A+1、A+2、A+3,其中字节单元由高位到低位字节顺序为A、A+1、A+2、A+3;地址为A的字单元包括半字单元A、A+2,其中半字单元由高位到低位字节顺序为A、A+2;地址为A的半字单元包括字节单元A、A+1,其中字节单元由高位到低位字节顺序为A、A+1。这种存储器格式如下图所示: 图3.3 big-endian格式的存储系统在little-endian格式中,地址为A的字单元包括字节单元A、A+1、A+2、A+3,其中字节单元由高位到低位字节顺序为A3、A+2、A+1、A;地址为A的字单元包括半字单元A、A+2,其中半字单元由高位到低位字节顺序为A2、A;地址为A的半字单元包括字节单元A、A+1,其中字节单元由高位到低位字节顺序为A1、A。这种存储器格式如下图所示: 图3.4

    注意事项

    本文(系统引导程序(Bootloader)的设计与实现毕业设计说明书.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开