ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:39.92KB ,
资源ID:5962794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5962794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(arm启动过程分析及应用研究学士学位论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

arm启动过程分析及应用研究学士学位论文.docx

1、arm启动过程分析及应用研究学士学位论文长沙师范专科学校电子信息工程 系 计算机应用 专业 级毕业论文(设计)题目: ARM启动过程分析及应用研究姓名:宋政艳 学号:2009540830139指导教师(签名): 年 月 日前 言自从电子技术发展起来之后,ARM因其体积小、低功耗、低成本高性能的优势,正以惊人的速度向前发展,在工业控制,浪费类电子产品和成像安全产品、无线网络与通讯等领域得到了广泛应用,极大地改进了这些行业的生产效率、提高了生产力、除此之外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用,ARM技术在许多不同领域的地位日益巩固。本文以嵌入式系统设计作为具体

2、的研究对象,选取ARM微处理器作为嵌入和式设计的核心,系统地介绍了ARM和嵌入式操作系统、工作原理和启动过程分析。目 录前 言 第一章 ARM 概述 11.1 ARM简介 11.1.1 RISC结构特性 21.1.2 常用ARM处理器系列 31.2 ARM微处理器的应用领域及特点 71.2.1 ARM 微处理器的应用领域 71.2.2 ARM处理器的特点 8第二章 ARM9简述 82.1 ARM9简介 92.2 ARM9体系结构 92.2.1 ARM工作状态 92.2.2 ARM9处理器的主要结构及其特点 10第三章 ARM9分析启动 113.1 ARM9启动过程 11第四章 总结 15第一章

3、 ARM 概述1.1 ARM简介ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,

4、它本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,从而使产品更容易进入市场被消费者所接受,更具有竞争力。1.1.1 RISC结构特性ARM内核采用精简指令集计算机(RISC)体系结构,它是一个小门数的计算机,其指令集和相关的译码机制比复杂指令集计算机(CISC)要简单得多,其目标就是设计出

5、一套能在高时钟频率下单周期执行,简单而有效地的指令集。RISC的设计重点在于降低处理器中指令执行部件的硬件复杂度,这是因为软件比硬件更容易提供更大的灵活性和更高的智能化,因此ARM具备了非常典型的RISC结构特性: (1)具有大量的通用寄存器; (2)通过装载/保存(load-store)结构使用独立的load和store指令完成数据在寄存器和外部存储器之间的传送,处理器只处理寄存器中的数据,从而可以避免多次访问存储器; (3)寻址方式非常简单,所有装载/保存的地址都只由寄存器内容和指令域决定; (4)使用统一和固定长度的指令格式。 此外,ARM体系结构还提供: (1)每一条数据处理指令都可以

6、同时包含算术逻辑单元(ALU)的运算和移位处理,以实现对ALU和移位器的最大利用; (2)使用地址自动增加和自动减少的寻址方式优化程序中的循环处理; (3)load/store指令可以批量传输数据,从而实现了最大数据吞吐量; (4)大多数ARM指令是可“条件执行”的,也就是说只有当某个特定条件满足时指令才会被执行。通过使用条件执行,可以减少指令的数目,从而改善程序的执行效率和提高代码密度。 这些在基本RISC结构上增强的特性使ARM处理器在高性能、低代码规模、低功耗和小的硅片尺寸方面取得良好的平衡。 从1985年ARM1诞生至今,ARM指令集体系结构发生了巨大的改变,还在不断地完善和发展。为了

7、清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1V7表示。 1.1.2 常用ARM处理器系列ARM公司开发了很多系列的ARM处理器核,应用比较多的是ARM7系列、ARM9系列、ARM10系列、ARM11系列、Intel的Xscale系列和MPCore系列,还有针对低端8位MCU市场最新推出的CortexM3系列,其具有32位CPU的性能、8位MCU的价格。1CortexTM-M3处理器ARM CortexTM-M3处理器是一个面向低成本,小管脚数目以及低功耗应用,并且具有极高运算能力和中断响应能力的一个处理器内核。其问世于2006年,

8、第一个推向市场的是美国LuminaryMicro半导体公司的LM3S系列ARM。 CortexTM-M3处理器采用了纯Thumb2指令的执行方式,使得这个具有32位高性能的ARM内核能够实现8位和16位处理器级数的代码存储密度,非常适用于那些只需几K存储器的MCU市场。在增强代码密度的同时,该处理器内核是ARM所设计的内核中最小的一个,其核心的门数只有33K,在包含了必要的外设之后的门数也只为60K。这使它的封装更为小型,成本更加低廉。在实现这些的同时,它还提供性能优异的中断能力,通过其独特的寄存器管理并以硬件处理各种异常和中断的方式,最大程度的提高了中断响应和中断切换的速度。 2Cortex

9、TM-R4处理器 CortexTM-R4处理器是首款基于ARM v7架构的高级嵌入式处理器,其目标主要为产量巨大的高级嵌入式应用方案,如硬盘,喷墨式打印机,以及汽车安全系统等等。CortexTM-R4处理器在节省成本与功耗上为开发者们带来了关键性的突破,在与其他处理器相近的芯片面积上提供了更为优越的性。CortexTM-R4采用了90纳米生产工艺,最高运行频率可达400MHz,该内核整体设计的侧重点在于效率和可配置性。3CortexTM-R4F处理器 CortexTM-R4F处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术、浮点运算单元(FPU)以及DMA综合配置的

10、能力,增强了处理器在存储器保护单元,缓存,紧密耦合存储器,DMA访问以及调试方面的能力。4CortexTM-A8处理器 CortexTM-A8是ARM公司所开发的基于ARMv7架构的首款应用级处理器,同时也是ARM所开发的同类处理器中性能最好、能效最高的处理器。CortexTM-A8是ARM公司首个超量处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM技术、以及能够支持JAVA和其他文字代码语言(byte-code language)的提前和即时编译的Jazelle RCT(Run-time Compilation Target 运行时编译目标代码

11、)技术。ARM最新的Artisan Advantage-CE库以其先进的泄漏控制技术使CortexTM-A8处理器实现了优异的速度和能效。5ARM7系列ARM7TDMI是ARM公司1995年推出的第一个处理器内核,是目前用量最多的一个内核。ARM7系列包括ARM7TDMI、ARM7TDMIS、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJS。该系列处理器提供Thumb 16位压缩指令集和EmbeddedICE JTAG软件调试方式,适合应用于更大规模的SoC设计中。其中ARM720T高速缓存处理宏单元还提供8KB缓存、读缓冲和具有内存管理功能的高性能处理器,支持L

12、inux和Windows CE 等操作系统。6ARM9系列ARM9系列于1997年问世,ARM9系列有ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。所有的ARM9系列处理器都具有Thumb压缩指令集和基于EmbeddedICE JTAG 的软件调试方式。ARM9系列兼容ARM7系列,而且能够比ARM7进行更加灵活的设计。 7ARM10系列 ARM10发布于1999年,ARM10系列包括ARM1020E和ARM1022E微处理器核。其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能,为用户界面的2D和3D

13、图形引擎应用夯实基础,如视频游戏机和高性能打印机等。8ARM11系列 ARM1136JS发布于2003年,是针对高性能和高能效的应用而设计的。ARM1136JS是第一个执行ARMv6架构指令的处理器,它集成了一条具有独立的load-store和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令多数据流(SIMD)扩展,采用特殊的设计以改善视频处理性能。 ARM1136JFS就是为了进行快速浮点运算,而在ARM1136JS增加了向量浮点单元。9XscaleXscale处理器将Intel处理器技术和ARM体系结构融为一体,致力于为手提式通信和消费电子类设备提供理想的解决方案。并提供全

14、性能、高性价比、低功耗的解决方案,支持16位Thumb指令和集成数字信号处理(DSP)指令。1.2 ARM微处理器的应用领域及特点1.2.1 ARM 微处理器的应用领域到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域。(1)工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。(2)无线通信领域:目前已有85%以上的无线通信设备采用了ARM技术, ARM以其高性能和低成本的特点,在该领域的地位日益巩固。(3)网络应用:随

15、着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。(4)消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。(5)成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器及技术还应用到许多其他领域,并会在将来取得更加广泛的应用。1.2.2 ARM处理器的特点采用RISC架构的ARM微处理器一般具有如下特点。(1)体积小、低功耗、低成本、高性能;(2)支持Thumb(16位)

16、/ARM(32位)双指令集,能很好地兼容8位/16位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。第二章 ARM9简述2.1 ARM9简介ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。以手机应用为例,2G手机只需提供语音及简单的文字短信功能,而目前的25G和未来的3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。主要包括:(1)无线网络设备:手机上网、电子邮件及其他定位服务等功能;(2)PDA功能:含有用户操作系统(Windows

17、CE、Symbian OS、Linux等)及其他功能;(3)高性能功能:音频播放器、视频电话、手机游戏等。在25G和3G的应用中ARM9已经全面替代了ARM7。因为ARM9的新特性能够满足各种新需求的同时减少产品研发时间并降低研发费用新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。2.2 ARM9体系结构2.2.1 ARM工作状态 从编程者角度看ARM9有两种工作状态,并且可相互切换 ARM状态 , 处理执行32位的ARM指令 字对齐 Thumb状态,处理执行16位的Thumb

18、指令 半字对齐如果在1K的存储空间中,可以放32条ARM指令,就可以放64条Thumb指令,因此在存放Thunb指令时,代码密度高2.2.2 ARM9处理器的主要结构及其特点ARM9是哈佛结构(1)32 b定点RISC处理器,改进型ARMThumb代码交织,增强性乘法器设计,支持实时(real-time)调试; (2)片内指令和数据SRAM,而且指令和数据的存储器容量可调; (3)片内指令和数据高速缓冲器(Cache)容量从4 KBl MB: (4)设置保护单元(Protoction Unit),非常适合嵌入式应用中对存储器进行分段和保护; (5)采用AMBA AHB总线接口,为外设提供统一的

19、地址和数据总线; (6)支持外部协处理器,指令和数据总线有简单的握手信令支持; (7)支持标准基本逻辑单元扫描测试方法; (8)支持BIST(Built-in-self-test); (9)支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。第三章 ARM9分析启动3.1 ARM9启动过程在ARM设计开发中,启动代码的编写是一个极重要的过程。然而启动代码随具体的目标系统和开发系统有所区别,但通常包含以下部分: 向量表定义地址重映射及中断向量表的转移堆栈初始化 设置系统时钟频率 中断寄存器的初始化 进入C应用程序下面就结合PHILIPS的LPC2119的启动代码来分析与说明ARM7处理器的启动代码的编

20、写。1.1向量表定义ARM芯片上电或复位后,系统进入管理模式、ARM状态、PC(R15寄存器)指向0x00000000地址处。中断向量表为每一个中断设置1个字的存储空间,存放一条跳转指令,通过这条指令使PC指针指向相应的中断服务程序入口,继而执行相应的中断处理程序。LPC2119的中断向量表和其它基于ARM核的芯片中断向量表较类似,只要注意LPC2119要使向量表所有数据32位累加和为零(0x000000000x0000001C的8个字的机器码累加), 才能使用户的程序脱机运行。LPC2119的中断向量表如图1所示。1.2 地址重映射及中断向量表的转移ARM7处理器在复位后从地址0读取第一条指

21、令并执行,因此系统上电后地址0必须是非易失的ROM/FLASH,这样才能保证处理器有正确可用的指令。为了加快对中断的处理以及实现在不同操作系统模式下对中断的处理,这就需要重新映射中断向量表、Bootblock和SRAM空间的一小部分。ARM具有非常灵活的存储器地址分配特性。ARM处理器的地址重映射机制有两种情况:由专门的寄存器完成重映射(Remap),只需对相应的Remap寄存器相应位设置即可。没有专门的Remap控制寄存器需要重新改写用于控制存储器起始地址的块(Bank)寄存器来实现Remap。在LPC2119上的重映射,可以通过存储器映射控制器来实现。实现REMAP操作的程序实现如下: M

22、OV R8,#0x40000000; /设置新向量表起始地址/LDR R9,=Interrupt_Vector_Table; /读原向量表源地址/LDMIA R9!,(R0-R7); /复制中断向量表及中断处理程序的入口地址到RAM中(64字节)/STMIA R8!,(R0-R7)LDMIA R9!,(R0-R7)STMIA R8!,(R0-R7)LDR R8,=MEMMAP ; /REMMAP操作/MOV R9,#0x02STR R9, R81.3 堆栈初始化启动代码中各模式堆栈空间的设置是为中断处理和程序跳转时服务的。当系统响应中断或程序跳转时,需要将当前处理器的状态和部分重要参数保存在一

23、段存储空间中,所以对每个模式都要进行堆栈初始化工作,给每个模式的SP定义一个堆栈基地址和堆栈的容量。堆栈的初始化有两种方法:第一种方法是结合ADS开发套件中的分散加载文件来定义堆栈。第二种方法是最简单也是最常用的一种就是直接进入对应的处理器模式,为SP寄存器指定相应的值。下面给出了用第二种方法初始化管理模式和中断模式堆栈的程序:MSR CPSR_c, #0xD3 ; /切换到管理模式,并初始化管理模式的堆栈/LDR SP, Stack_SvcMSR CPSR_c, #0xD2 ; /切换到IRQ模式,并初始化IRQ模式的堆栈/LDR SP, Stack_Irq1.4 系统部分时钟初始化时钟是芯

24、片各部分正常工作的基础,应该在进入main()函数前设置。部分ARM7片子内部集成有PLL(锁相环)电路,用户可以用低频率的晶振通过PLL电路获得一个较高频率的时钟。LPC2119内部的PLL电路接受的输入时钟频率范围为1025MHz,输入频率通过一个电流控制振荡器(CCO)倍增到范围1060MHz。同时为了使高速的ARM处理器与低速的外设正常通讯和降低功耗(降低外设运行速度使功耗降低),LPC2119又集成了一个额外的分频器。PLL的激活是由PLLCON寄存器控制。PLL倍频器和分频器的值由PLLCFG寄存器控制。对PLLCON或PLLCFG寄存器的更改必须遵循严格的顺序,否则所作更改是无法

25、生效的(在连续的VPB周期内向PLLFEED寄存器写入0xAA、0x55,在此期间中断必须是被禁止的。)1.5 中断初始化ARM7的向量中断控制器(Vectored Interrupt Controller)可以将中断编程为3类:FIQ、向量IRQ、非向量IRQ。FIQ中断请求的优先级最高,其次是IRQ中断请求,非向量IRQ的优先级最低。VIC具有32个中断请求输入,但在LPC2219中只占用了17个中断输入。对于这17个中断源的IRQ/FIQ选择,由VICIntSelect寄存器控制,当对应位设置位1时,则此中断为FIQ中断,否则为IRQ中断。若再将IRQ中断设置到向量控制寄存器(VICVe

26、ctCntIn)中,则此中断为向量IRQ中断,否则为非向量IRQ中断。FIQ中断是专门用来处理那些需要及时响应的特殊事件,尽可能地只给FIQ分配一个中断源。1.6 进入C应用程序至此,系统各部分的初始化基本完成,可以直接从启动代码转入到应用程序的main()函数入口。从启动代码转入到应用程序的实例代码如下:IMPORT mainLDR R0,=mainBX R0第四章 总结论文的写作是一个长期的过程,需要不断的进行精心的修改,不断地去研究各方面的文献,认真总结。历经了这么久的努力,终于完成了毕业论文。在这次毕业论文的写作的过程中,我拥有了无数难忘的感动和收获。写作毕业论文是我们每个大学生必须经

27、历的一段过程,也是我们毕业前的一段宝贵的回忆。当我们看到自己的努力有收获的时候,总是会有那么一点点自豪和激动。任何事情都是这样子,需要我们脚踏实地的去做,一步一个脚印的完成,认真严谨,有了好的态度才能做好一件事情,一开始都觉得毕业论文是一个很困难的任务,大家都难免会有一点畏惧之情,但是经过长时间的努力和积累,经过不断地查找资料后总结,我们都很好的按老师的要求完成了毕业论文的写作,这种收获的喜悦相信每个人都能够体会到。这是一次意志的磨练,是对我实际能力的一次提升,相信对我未来的学习和工作有很大的帮助。 在这次毕业论文中同学之间互相帮助,共同商量相关专业问题,这种交流对于即将面临毕业的我们来说是一

28、次很有意义的经历,大学四年都一起走过了,在最后我们可以聚在一起讨论学习,研究专业问题,进而更好的了解我们每个人的兴趣之所在,明确我们的人生理想,进而在今后的生活和工作中更好的发挥自己的优势,学好自己的专业,成为一个对于社会有用 的人. 在此更要感谢我的专业老师,是您的细心指导和关怀,使我能够顺利的完成毕业论文。老师对于学生总是默默的付出,尽管很多时候我们自己并没有特别重视论文的写作,没有按时完成老师的任务,但是老师还是能够主动的和我们联系,告诉我们应该怎么样修改论文,怎么样按要求完成论文相关的工作。老师的检查总是很仔细的,可以认真的看论文的每一个细小的格式要求,认真的读每一个同学的论文,然后提出最中肯的意见,这是很难得的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1