系统引导程序的设计与实现.docx
《系统引导程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《系统引导程序的设计与实现.docx(45页珍藏版)》请在冰点文库上搜索。
系统引导程序的设计与实现
系统引导程序的设计与实现
2011届毕业设计说明书
系统引导程序(Boot-loader)
的设计与实现
系、部:
运算机与信息科学系
学生姓名:
指导教师:
职称
专业:
运算机科学与技术
班级:
完成时刻:
2011年6月3日
摘要
随着移动设备的流行和进展,嵌入式系统差不多成为一个热点。
它并不是最近显现的新技术,只是随着微电子技术和运算机技术的进展,微操纵芯片功能越来越强大,而嵌入微操纵芯片的设备和系统越来越多,从而使得这种技术越来越引人注目。
它对软硬件的体积大小、成本、功耗和可靠性都提出了严格的要求。
嵌入式系统的功能越来越强大,实现也越来越复杂,随之显现的确实是可靠性大大降低。
最近的一种趋势是一个功能强大的嵌入式系统通常需要一种操作系统来给予支持,这种操作系统是差不多成熟同时稳固的,能够是嵌入式的Linux,WINCE等等。
相应地,这也给处理器提出了要求。
当今,众多的半导体厂商都生产基于ARM体系结构的通用微处理芯片,ARM技术差不多在当今的嵌入式微处理器领域中占据了它的领先地位。
究其缘故,它的以精简指令构架为主又不舍弃与复杂指令平稳的设计,使得在获得高性能的同时又能做到低功耗。
本文所要研究的确实是基于ARM嵌入式系统bootloader的设计与实现。
Bootloader是嵌入式系统中执行在内核操作系统前的一段代码,它的差不多作用确实是加载内核镜像。
在实践平台上,本课题硬件上采纳了ARM9系列的S3C2440A作为处理器,具有一定的代表性,并以此来搭建课题的硬件实践平台,软件上以Linux作为操作系统。
关键词:
嵌入式系统;ARM;Bootloader
ABSTRACT
Withthepopularityofmobiledevicesanddevelopmentofembeddedsystemshasbecomeahotspot.Itisnotarecentemergenceofnewtechnology,butwiththemicroelectronicsandcomputertechnology,moreandmoremicro-controlchipfunctions,andembeddedmicro-controllerchipdevicesandsystemsmoreandmore,makingthistechnologymoreandmorenoticeable.Thevolumeofitshardwareandsoftwaresize,cost,powerconsumptionandreliabilityhavemadestringentrequirements.Morepowerfulembeddedsystemstoachievemoreandmorecomplex,theresultingreliabilityisgreatlyreduced.Amorerecenttrendisapowerfulembeddedsystemsusuallyrequireanoperatingsystemtosupportthisoperatingsystemisalreadymatureandstable,canbeembeddedLinux,WINCEandsoon.
Accordingly,italsomadearequesttotheprocessor.Today,manysemiconductormanufacturersareproducinggenericarchitecturebasedonARMmicro-processingchip,ARMtechnologyhasintoday'sembeddedmicroprocessorsoccupyitsleadingposition.Thereasonismainlythatit'sreducedinstructionsetarchitectureandcomplexinstructionsnottogiveabalanceddesign,makesdowhileachievinghighperformancewithlowpowerconsumption.
ThispaperistostudytheARM-basedembeddedsystemdesignandimplementationofbootloader.Bootloaderistheimplementationofembeddedsystemsintheperiodbeforetheoperatingsystemkernelcode,anditsbasicfunctionistoloadthekernelimage.
Inpracticeplatform,thesubjectofhardwareS3C2440AusedastheARM9familyprocessor,withacertainrepresentation,andinordertobuildapracticalplatformhardwareissues,softwaretoLinuxastheoperatingsystem.
Keywords:
embeddedsystem;ARM;Bootloader
1绪言
1.1研究背景
随着人民生活水平提高带来庞大的消费需求、信息化进程的推进、电信运营业的进展,信息产业市场空间将得到进一步拓展。
在这良好的经济环境下,嵌入式系统领域得到进一步的拓宽与进展。
嵌入式系统是以应用为中心、以运算机技术为基础、软件硬件可剪裁来适应系统对功能、可靠性、成本、体积、功耗严格要求的专用运算机系统。
嵌入式系统是将先进的运算机技术、半导体技术、电子技术和各行业的具体应用相结合后的产物,它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
嵌入式系统广泛地应用在信息终端、工业操纵和信息家电等领域。
在嵌入式系统的开发中,嵌入式软件是实现各种系统功能的关键,也是运算机技术最活跃的研究方向之一。
不同应用对嵌入式软件系统有不同的要求,同时随着运算机技术的进展,这些要求也在不断变化。
通常,应用系统对嵌入式软件的差不多要求是体积小、执行速度快、具有较好的可剪裁性和可移植性。
专门地,现在对嵌入式软件来说,都需要操作系统的支持。
简单的嵌入式系统全然没有操作系统,而只是一个操纵循环。
然而,当系统变得越来越复杂时,就需要一个嵌入式操作系统来支持,否则应用软件就会变得过于复杂,使开发难度过大,安全性和可靠性都难以保证。
嵌入式软件,专门是操作系统的支持,使得对硬件的要求越来越高。
针对嵌入式系统的各种微处理器遍布各个角落。
专门是采纳ARM技术IP核的各种微处理器遍及各类产品市场。
ARM技术以其较高的性能和功效,使得在嵌入式系统中得到广泛应用。
世界上几乎所有的要紧半导体厂商都生产基于ARM体系结构的通用芯片,如TI,Motorola,Intel,NS,Ateml,Philips,SAMSUNG等。
目前,ARM芯片广泛应用于汽车电子、保安设备、无线通信、智能手机等多个领域。
应该说,ARM无处不在。
随着嵌入式产品中高端微处理器ARM的加入以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整的构架。
现在,专门为嵌入式产品开发的各个操作系统层出不穷,WINDOWCE,POCKETPC,Linux等等,各界关注地也专门多。
然而,如何进行加载操作系统那个问题却专门少有人提出。
这就产生了另一个相关主题bootloader。
Bootloader本身的功能确实是引导与加载内核镜像。
如何实现bootloader的差不多功能,如何针对基于ARM体系的微处理器来实现bootloader,就成为本课题的一个差不多论题。
1.2要紧研究工作
本文的题目尽管涉及到ARM系统,然而,由于bootloader的专门性以及个别性,即bootloader与具体的处理器以及具体的硬件系统紧密联系在一起,需要实际的完整硬件系统支持,而基于ARM920T体系的芯片实在太多,每款芯片除了具有差不多的ARM体系结构的通性外,通常还具有各自专门的特性,还需分别处理。
因此,在真正的开发环节上,本课题要紧基于ARM920T体系构架的S3C2440A处理器,专门具有代表性,并由此在理论上扩展到整个ARM系统。
在实现过程中具体研究开发如下:
★选择基于ARM920T构架的S3C2440A芯片作为处理器,并以此构建一套硬件开发系统
★与实际项目接轨,选择GNU的linux作为系统的操作系统
★在上述软硬件开发系统上实现基于S3C2440A的bootloader的差不多功能,即引导加载内核镜像的功能
★在ARM920T的构架基础上在理论上扩展到ARM系统,分析关于ARM系统,bootloader实现的一些共性以及一些限制
★分析关于实现bootloader,移植到其他ARM平台的相关处理
1.3要紧内容
依照所涉及的要紧研究工作,本文的内容要紧包括一下几个部分:
第2章简要叙述ARM世界的一些主流处理器以及其优势特点;紧接着第3章则详细描述了ARM的体系结构,指令系统;第4章的内容是介绍bootloader的概念,并专门针对ARMbootloader进行了详细说明;第5章在介绍软硬件平台之后详细介绍了bootloadr的实现;最后一章进行一下总结与展望。
2ARM处理器简介
嵌入式系统的核心部件是各种类型的嵌入式处理器。
目前据不完全统计,全世界嵌入式处理器的品种总量差不多超过1000多种,流行体系结构有30多个系列。
嵌入式微处理目前要紧有Am186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。
其中,ARM是一种近年来在嵌入式系统中有着强大阻碍力的微处理器设计商和制造商,ARM的设计专门适合与小的电源供电系统。
专门是,随着近年来,微处理器结构由RISC(精简指令集)全面取代传统的CISC(复杂指令集),因为ARM是闻名的RISC的拥护者。
2.1ARM处理器
ARM(AdvancedRISCMachines),既能够认为是一个公司的名字,也能够是对一类微处理器的通称,还能够认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,要紧出售芯片设计技术的授权。
目前,采纳ARM技术只是产权(IP)核的微处理器,即通常我们所说的ARM微处理器,差不多遍及工业操纵、消费类电子产品、通信系统、无线系统等各类产品市场,基于ARM技术的微处理应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入我们生活的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直截了当从事芯片生产,靠转让设计许可由合作公司生长各具特色的芯片。
世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,依照各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使得整个系统成本降低,使产品更容易进入市场被消费者所同意,更具有竞争力。
2.1.1ARM处理器介绍
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微处理器系列具有如下特点:
★具有嵌入式ICE-RT逻辑,调试开发方便。
★极低的功耗,适合对功耗要求较高的应用,如便携式产品。
★能够提供0.9MIPS/MHz的三级流水线结构。
★代码密度高并兼容16位的Thumb指令集。
★对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等。
★指令系统与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,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。
★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,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。
★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,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。
★支持数据Cache和指令Cache,具有更高的指令和数据处理能力
★主频最高可达400MIPS。
★内嵌并行读/写操作部件。
ARM10E系列微处理器要紧应用于下一代无线设备、数字消费品、成像设备、工业操纵、通信和信息系统等领域。
ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。
(5)StrongArm微处理器系列
IntelStrongARMSA-1100处理器是采纳ARM体系结构高度集成的32位RISC微处理器。
它融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采纳在软件上兼容ARMv4体系结构、同时采纳具有Intel技术优点的体系结构。
IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品
(6)IntelXscale微处理器系列
有关IntelXscale微处理器系列,会在后面相关篇幅中进行介绍。
2.2ARM处理器的优势
采纳RISC结构的ARM微处理器一样具有如下特点:
1.体积小、低功耗、低成本、高性能;
2.支持Thumb(16位)/ARM(32位)双指令集,能专门好地兼容8/16位器件;
3.大量使用寄存器,指令执行速度更快;
4.大多数数据操作都在寄存器中完成;
5.寻址方式灵活简单,执行效率高;
6.指令长度固定;
ARM处理器之因此能够广泛应用于各个领域,与以上所列的各个特点紧密相关,综合起来,要紧包括以下几点。
2.2.1RISC指令集
传统的CISC(ComplexInstructionSetComputer,复杂指令集运算机)结构有其固有的缺点,即随着运算机技术的进展而不断引入新的复杂的指令集,为支持这些新增的指令,运算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。
而余下的80%的指令却不经常使用,在程序设计中只占20%,明显,这种结构是不太合理的。
基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(ReducedInstructionSetComputer,精简指令集运算机)的概念,RISC并非只是简单地去减少指令,而是把着眼点放在了如何使运算机的结构更加简单合理地提高运算速度上。
RISC结构优先选取使用频率最高的简单指令,幸免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以操纵逻辑为主,不用或少用微码操纵等措施来达到上述目的。
到目前为止,RISC体系结构也还没有严格的定义,一样认为,RISC体系结构应具有如下特点:
★采纳固定长度的指令格式,指令归整、简单、差不多寻址方式有2~3种。
★使用单周期指令,便于流水线操作执行。
★大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/储备指令能够访问储备器,以提高指令的执行效率。
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。
3ARM体系结构介绍
在介绍具体的ARMBootloader的实现之前,第一介绍一下ARM的体系结构,因为Bootloader是与处理器芯片紧密相连的。
为了更好的在后面篇幅中介绍实现,先简单介绍相关的体系结构以及相关指令集。
3.1ARMcore描述
尽管本本文实现要紧涉及软件上的开发,然而软件上代码的实现更多的都涉及芯片构架,因此在那个地点简要介绍一下一样ARMcore构架。
下图所示的是ARM构架图。
它由32位ALU、若干个32位通用寄存器以及状态寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令译码以及操纵逻辑、指令流水线和数据/地址寄存器组成。
1.ALU:
它由两个操作数锁存器、加法器、逻辑功能、结果以及零检测逻辑构成。
2.桶形移位寄存器:
ARM采纳了32×32位的桶形移位寄存器,如此能够使在左移/右移n位、环移n位和算术右移n位等都能够一次完成。
3.高速乘法器:
乘法器一样采纳“加一移位”的方法