【vfp开源代码栏目提醒】:网学会员在vfp开源代码频道为大家收集整理了“基于ARM内核的小型化Bootloader - 毕业设计“提供大家参考,希望对大家有所帮助!
摘要 摘要 嵌入式系统发展到今天,应用越来越复杂,功能越来越强大,这就使得我们在嵌入式开发中必须加入对操作系统的支持,由此,产生了Bootloader的应用。
作为嵌入式系统中的启动模块,Bootloader的作用就是引导和加载操作系统内核镜像。
Bootloader的设计与移植工作已经成为嵌入式系统开发中的重要环节。
在实际的嵌入式系统开发项目中,人们经常选择移植通用Bootloader,例如U.Boot到自己的目标板。
U.Boot虽然支持多种嵌入式操作系统和处理器架构,功能设置高度灵活,设备驱动丰富,但U—Boot
代码组织结构过于庞大,启动流程机理和文件间的依赖关系复杂,这使得采用U—Boot进行Bootloadel”的开发往往会不得要领;另一方面,嵌入式系统是资源受限的,为了更好的适应市场,嵌入式产品的开发极其重视成本。
以U.Boot.1.1.4来说,其源
代码大小就有38.4M,移植后生成的可执行bin文件一般也要500K以上,这对于宝贵的Flash资源来说无疑是种浪费。
论文以ARM内核处理器应用为切入点,设计了一种小型ARMBootloaderMicroBootloader。
在理论上,通过对Bootloader的分析,总结了其主要功能、启动过程,提出了Bootloader设计的典型框架,并按照这一典型框架对MicroBootloader进行了总体设计。
在实现上,采用模块化设计原则组织源文件,使得整个MicroBootloader组织结构清晰简洁,便于维护与扩展,方便针对不同硬件平台的移植进行修改。
论文的创新点在于做到了
代码量大小与功能的平衡。
整个文件组织只有37个文件,
代码总计为208K,生成的可执行bin文件仅35K。
通过实验验证,MicroBootloader完全能够完成Bootloader的基本功能,其扩展功能也能实现下载操作系统镜像,并让其在目标板上成功运行,具有一定的现实意义和后续应用开发价值。
关键词:ARM内核;小型化;模块化;MicroBootloader ABSTRACT ABSTRACT Until today,the application of the embedded system is getting more andmore complex,the function of the embedded system is getting more and moreformidable,These cause that doing embedded development must supportoperating system.from this,the Bootloader application has developed.Asstart module in embedded system,the Bootloader function is guiding andloadin季operating system essence mirror image.The Bootloader design andthe transplant work already became the important part in the embeddedsystem development. In actual embedded system developmental program,the people choosetransplant general Bootloader frequently,for example U-Boot to itself goalboard.Although U—Boot supports many kinds of embedded operating systemsand the processor construction,and owns highly flexible functionestablishment and rich equipment actuates,the U-Boot code organizationalstructure is too huge,dependence between the start flow mechanism and thedocument is complex,this will cause to use U·Boot to carry on Bootloaderdevelopment often to miss the point.On the other hand,the embeddedsystem’S resources are limited,the embedded product’S development takes thecost extremely for better adapting market.By U-Boot一1.1.4,its source codesize has 3 8.4M,after transplanting and producing executable bin document isabove generally 500K,this is a kind of waste without doubt for precious FlashI.eSOUrees. The paper takes the ARM essence processor application as abreakthrough point,and has designed one kind of small ARMBootloader-MicroBootloader.On theory,through analysising the Bootloader,summarized its major function and startup procedure,proposed theBootloader design’S typical flame,and deferred to this typical frame to carryon the system design to MicroBootloader.On realization,adopting the 武汉丁程大学硕十学位论文modulation principle designs organization source document in order to makethe entire MicroBootloader organizational structure clear succinct,let themaintenance and the expansion convenient,and get easy to make changes inview of the different hardware platform transplant. The paper innovation spot lay in making achieved the code quantity sizeand function balanced.The entire File organization only has 37 documents,the code grand total is 208K,the executable bin document only has 35K.Through the experimental verification,MicroBootloader can definitelycomplete Bootloader basic function,its extended function can also realize thedownloading operating system image and let it succeed movement on thetarget,which owns certain practical significance and the following applicationdevelopment value.Keywords:ARM Core;miniaturation;modulation;MicroBootloader IV 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者签名:触,易 护乡年舌月3日学位论文
版权使用授权书 本学位论文作者完全了解我校有关保留、使用学位论文的规定,即:我校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅。
本人授权武汉工程大学研究生处可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
保密O, 在——年解密后适用本授权书。
本论文属于 l 不保密‖。
(请在以上方框内打“4”)学位论文作者签名:确、易 指导教师签名:—肉/乞 ’叩‘月|)日 下秒 第1章绪论 第1章绪论1.1小型化ARM Bootloader的研究背景和意义 Bootloader是随着嵌入式操作系统的发展而发展起来的,在当今嵌入式系统的设计与开发中,Bootloader的设计与移植工作是必不可少的环节。
目前,一些通用Bootloader的功能已经非常强大,它们在实际的嵌入式
系统项目开发过程中发挥着重要的作用。
但是,针对于某一特定的应用(这也是嵌入式系统的一大特点)来讲,这些Bootloader往往显得过于庞大,对于资源有限的嵌入式系统来讲,是比较浪费的。
而且,利用这些通用Bootloader进行操作系统移植时,工作会非常复杂而且容易不得要领。
另一方面,在Bootloader的研究这一领域,现有的成果基本都是集中在针对某一特定开发环境上,对通用Bootloader
代码如何进行修改、编译j移植这些问题上。
当然,这些已有的成果也是非常值得我们
学习和借鉴的。
同时,基于ARM内核的嵌入式处理器应用占据了32位RISC微处理器75%以上的市场份额。
因此,设计一种针对ARM内核的Bootloader并实现是具有很强的现实意义和应用价值的。
针对上述原因,本文提出了基于ARM内核的小型化Bootloader这一课题,通过对Bootloader基本功能的分析,典型架构的设计,再结合对U.boot这一
开源项目的深入研究,以期设计出一种小型的ARMBootloader,解决上述移植Bootloader过程中带来的
问题,并丰富Bootloader的设计方面的理论内容。
1.2本文主要研究
工作 本文研究基于ARM内核的小型化Bootloader,主要工作如下: 1.分析ARM体系结构及其编程模型,掌握如何使用ARM汇编语言 武汉1:程大学硕士学位论文 对硬件进行相关操作的知识。
2.分析Bootloader要实现的功能及启动过程,总结出Bootloader设计 的典型框架,并结合对一个实际项目一U—boot的深入研究,以获 得对Bootloader设计更进一步的认识。
3.研究小型化ARM Bootloader的总体设计原则与具体的实现方法, 包括功能的设定、
代码的组织结构、驱动程序的编写、功能函数 的实现等。
4.研究如何搭建合理的软硬件平台,设计实验,验证
设计成果。
1.3论文结构及内容安排 本文首先介绍了ARM的体系结构及编程模型,然后通过对Bootloader的分析,总结了其主要功能、启动过程,提出了Bootloader设计的典型框架,再结合对实际项目中经
常用到的Bootloader--U.boot的具体分析后,提出了小型化ARM Bootloader设计与实现这一课题,并给出了相关设计与实现方法,最后通过实验验证了设计成果。
全文内容安排如下: 第一章概述了小型化ARM Bootloader瓦J〕:究的背景和意义,并说明了论文研究的主要工作。
第二章介绍了ARM的体系结构及编程模型。
第三章首先提出了Bootloader的概念,然后通过对Bootloader的控制设备和机制、操作模式、启动过程、主要功能的分析,提出了Bootloader设计的典型框架,并结合对实际项目U.boot的具体分析,深入了对Bootloader设计的认识。
第四章提出小型化ARM Bootloader的概念,分析了设计小型化ARM Bootloader的意义,搭建了课题研究的平台环境,给出了总体设计原则,并论述了具体的设计方法与实现过程。
第五章对本文研究设计的MicroBootloaderJ差行了实验验证。
第六章对全文的工作进行了总结。
第2章ARM简介 第2章 ARM简介 ARM是AdvancedⅪSC Machines的缩写,是微处理器行业的一家知名企业,该企业设计了大量高性价比、低功耗的RISC(Reduced InstrctionSet Computer)处理器,相关技术及软件。
ARM设计的处理器适用于多种领域,如嵌入式控制、消费/教育类多媒体,DSP和移动式应用等【l】。
ARM将自己的技术授权给众多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。
利用这种合作关系,ARM很快成为全球性RISC标准的缔造者。
共有30多家半导体公司与ARM签订了技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、PHILIPS和国家半导体这样的大公司;至于软件系统的合伙人,则包括微软、升阳和M刚等一系列知名公司。
2.1 ARM微处理器核 ARM公司开发了很多系列微处理器核,目前应用比较多的是ARM7系列、ARM9系列、ARM9E系列、ARMIO系列、SecurCore系列和由第三方厂商针对ARM体系结构进行二次开发的ARM微处理器核,如Intel的StrongARM、Xscale系列,下面简单介绍这几个系yljt2〕。
1.ARM7系列 删7系列包括ARM7TDMI、ARM7TDMI—S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ.S。
该系列处理器提供Thumb 1 6位压缩指令集和EmbeddedlCE JTAG
软件调试方式,适合应用于更大规模的SoC设计中。
其中ARM720T高速缓存处理宏单元还提供8KB缓存、读缓冲和具有内存管理功能的高性能处理器,支持Linux、Symbian OS和Windows CE等操作系统。
ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备以及移动电话、PDA等无线设备。
无线信息设备领域的前景广阔,因此,ARM7系列也瞄准了下一代智能化多媒体无线设备领域的应用。
武汉工程大学硕十学位论文 在本文后面的篇幅中,对ARM的体系结构以及编程模型相关内容的介绍上均以ARM7TDMI内核为例。
2.ARM9系列 ARM9系列有ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。
所有的ARM9系列处理器都具有Thumb
压缩指令集和基于EmbeddedlCE JTAG的软件调试方式。
ARM9系列兼容ARM7系列,而且能够比ARM7系列进行更加灵活的设计。
ARM9系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高端打印机、PDA、
网络电脑以及带有MP3音频和MPEG4视频视频多媒体格式的智能电话中。
3.ARM9E系列 ARM9E系列为综合处理器,包括了ARM926EJ.S、带有高速缓存处理器宏单元的ARM966E—S/ARM946E.S。
该系列强化了数字信号处理功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddedlCE—RT(ARM的基于EmbeddedlCE JTAG软件调试的增强版本),更好的适应了实时系统的开发需要。
同时其内核在ARM9处理器内核的基础上使用Jazelle增强技术,该技术支持一种新的Java操作状态,允许在硬件中执行Java字节码。
4.ARMl0系列 ARMl0系列包括ARMl020E和ARMl022E微处理器核。
其核心在于使用向量浮点(VFP)单元VFPl0提供高性能的浮点解决方案,从而极大的提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等。
5.SecurCore系列 SecurCore系列涵盖了SCl00、SCl 10、SC200、SC210处理核。
该系列处理器主要针对新兴的安全市场,以~种全新的安全处理器设计为智能卡和其他安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。
6.StrongARM系列和Xscale系列 第2章ARM简介 StrongARM处理器将Intel处理器技术与ARM体系结构融为一体,致力于为手提式
通信和消费电子类设备提供理想的解决
方案。
Intel Xscale系列则提供全性能、高性价比和低功耗的解决方案,支持16位Thumb指令和DSP指令。
2.2 ARM处理器的特性 ARM是精简指令集(RISC)
计算机,其设计实现了外型非常小但是性能高的架构。
ARM处理器结构的简单使得内核非常小,这样也使得器件的功耗非常低。
它集成了非常典型的RISC特性【3】: 1.一个大而统一的寄存器文件; 2.装载/保存结构,数据处理的操作只针对寄存器的内容,而不直接 对存储器进行操作; 3.简单的寻址模式,所有装载/保存的地址都只由寄存器内容和指令 域决定; 4.统一和固定长度的指令域,简化了指令的译码; 5.每一条数据处理指令都对算数逻辑单元(ALU)和移位器控制,以 实现对ALU和移位器的最大利用; 6.地址自动增加和自动减少的寻址模式实现了程序循环的优化; 7.多寄存器装载和存储指令实现最大数据吞吐量; 8.所有指令的条件执行实现最快速的
代码执行; 这些在基本RISC结构上增强的特性使ARM处理器在高性能、低
代码规模、低功耗和小的硅片尺寸方面取得了良好的平衡。
2.3 ARM体系结构 以ARM7TDMI为例介绍ARM的体系结构。
ARM诞生至今,其体系结构有了巨大的改进,并在不断完善和发展。
每一代ARM体系结构都有自己的指令集,共有6种主要的ARM指令集版本,以版本号vl---v6表示。
ARM7TDMI内核基于ARM体系结构v4版本,其后缀TDMl分别表示鸭 武汉.I:程大学硕+学位论文 T: 高密度16位Thumb指令集扩展; D: 支持片上调试; M: 内嵌硬件乘法器,支持64位乘法指令; I: 支持嵌入式ICE硬件观察点;2.3。
1三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度,可使几个操作同时进行,使处理器和存储系统连续操作,能提供O.9MIPS/MHz的指令执行速度【5】。
流水线使用3个阶段,因此指令分为3个阶段执行: 1.取指2.译码3.执行 3阶段流水线示意图如图2.1所示。
ARM ’I’humb PC 网 指令从存储器中取出 丁 PC PC.4 PC-2 囱 对指令使用的寄存器进行译码 PC一8 Pc.4卤瓮霁喜霍磊轰薏曩毳存器 寄存器写回到寄存器组 图2.1指令流水线示意图 在正常操作过程中,在执行一条指令的同时,对下一条指令进行译码,并将第三条指令从存储器中取出。
需要注意的是,在ARM体系结构中,
程序计数器(pc)总是指向被取指的指令,而不是正在执行的指令。
2.3.2存储器访问 AI洲7TDMI处理器使用了冯·诺依曼(Yon Neumann)结构,指令和数据共用一条32位总线。
只有装载、存储和交换指令可以对存储器中的数据进行访问。
第2章ARM简介2.3.3 ARM7TDMI内核框图 图2.2所示的是ARM7TDMI内核框图。
它由32位ALU、若干个32位通用寄存器以及状态寄存器、32×8位乘法器、32 X 32位桶形移位寄存器、指令译码以及控制逻辑、指令流水线和数据/地址寄存器组成【41。
WDATA〔3 1:01 RDATA〔31:O】 图2.2ARM7TDMI内核框图 武汉T程大学硕+学位论文2.4 ARM编程模型 ’本节仍以ARM7TDMI内核为参考介绍ARM编程模型的以下几个方面:2.4.1 ARM支持的数据类型及数据存储格式 1.ARM处理器支持下列数据类型: 字节一 8位; 半字 16位(必须分配位占用2字节); 字 32位(必须分配位占用4字节); ARM体系结构v4版本及以上版本都支持这三种数据。
v4版本之前的版本只支持字节和字(ARM7TDMI基于v4版本)。
2.数据存储格式 存储器组织在以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字,这两种方式是根据最低有效字节与相邻较高有效字节相比是存放在较低还是较高的地址来划分的。
两种存储方式如图2.3所示。
3l 24 23 16 15 8 7 0 字地址 3I 24 23 16 15 8 7 0 高地址 孵7|,7 :?~q :一‘“童“ ’攀》锈 终’ j …j; :节‘巍…鬈 ;7,二:;誓;转 :_b 毵‘1l ‘16j一 9:。
高警址 ≯8, l舻 ”i8j凄 7,9 7,j ▲ ll,,一 。
多 雾‘ 一} ” 荔 i忍 蓼 一 j , ,。
噶 雾7』 倪 5= 5 6,. ≯’。
I ≈:。
罨 i,, : 7 j秀 ,i, 7。
;。
‖ ,3镌 低地址 ≯。
3 。
2 l ,,j’oj囔 低地址 lj 2: 勃if膨。
皇孚 ∞捕蔓霸≯? 施笏五誊蛙参, *_二~ }二一,毛;;缸々 劳彳。
,,。
i#渤 a)罕内字节的小端地址 b)字内字节的大端地址 图2.3ARM数据存储格式 在小端格式中,最低地址的字节被看作是最低位字节,最高地址字节被看作是最高位字节。
因此,存储器系统字节0连接到数据线7~O。
在大端格式中,最高位字节保存在最低地址字节,最低位字节保存在最高地址字节。
因此,存储器系统字节O连接到数据线3 l ̄24。
第2章ARM简介2.4.2 ARM处理器状态 ARM7TDMI处理器内核使用v4T版本结构实现,该结构包含32位ARM指令集和l 6位Thumb指令集。
因此ARM7TDMI处理器有两种操作状裂3】: ARM状态 32位,该状态下执行的是字方式的ARM指令; Thumb状态 16位,该状态下执行半字方式的Thumb指令; 在程序执行的过程中,处理器可以在两种状态下切换,ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容。
ARM指令集和Thumb指令集都有相应的状态切换命令。
ARM处理器在开始执行
代码时,只能处于ARM状态。
所有的异常都在ARM状态中处理,如果异常发生在Thumb状态中,处理器会自动切换到ARM状态处理异常,异常处理返回时,又自动切回到Thumb状态。
2.4.3 ARM处理器模式 ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、.