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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(ARM应用笔记.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

ARM应用笔记.docx

1、ARM应用笔记ARM应用笔记一、 ARM体系结构 ARM是Advanced RISC Machines的缩写,是一家微处理器行业的知名企业,设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。ARM公司只设计芯片,而不生产。它技术授权给半导体、软件和OEM厂商,并提供服务。ARM体系结构的目前7个版本:ARM V1版架构:只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。ARM V2版架构:对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。同样为26位寻址空间,现在已经废弃不再使用。ARM V3版架构:1990年设

2、计的第一个微处理器采用的是版本3的ARM6,作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU,V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动。ARM V4版架构:V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。V4不再强制要求与26位地址空间兼容。ARM V5版架构:V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。ARM V6版架构:V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,

3、强化了图形处理性能。ARM V7版架构:ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用 31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。命名方式上,基于ARMv7架构的ARM处理器已经不再延用过去的数字命名方式,而是冠以Cortex的代呼。基于v7A的称为“Cortex-A”,基于v7R的称为“Cortex-R”,基于v7M的称为“Cortex-M”。体系结构ARM核心V1

4、ARM1V2ARM2V2aARM2As, ARM3V3ARM6,ARM600,ARM610,ARM7,ARM700,ARM710V4Strong ARM,ARM8,ARM810V4TARM7TDMI,ARM710T,ARM720T,ARM740TARM9TDMI,ARM920T,ARM940TV5TEARM9E-S,ARM10TDMI,ARM1020EV6ARM1136J(F)-S,ARM1176JZ(F)-S,ARM11 MPCOREV6T2ARM1156T2(F)-SV7ARM Cortex-M,ARM Cortex-R, ARM Cortex-A二、 ARM处理器1、 ARM7微处理器系

5、列低功耗的32位RISC处理器,冯诺依曼结构。极低的功耗,适合便携式产品。能够提供0.9MIPS的三级流水线结构代码密度高,兼容16位的Thumb指令集。主频最高可达130MIPS。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用2、 ARM7TDMI微处理器ARM7TMDI是使用广泛的32位嵌入式RISC处理器,属低端ARM处理器核。注:“ARM核”并不是芯片,ARM核与其它部件

6、如RAM、ROM、片内外设组合在一起才能构成现实的芯片。4种类型: ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。3、 ARM9微处理器系列ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。5级整数流水线,哈佛体系结构。支持32位ARM指令集和16位Thumb指令集。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。主要应用:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。 3种类型:ARM920T、ARM922T和ARM940T。4、 ARM9E微处理器系列单一处理器内核提供微控制器、DS

7、P、Java应用系统的解决方案,支持DSP指令集。5级整数流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持VFP9浮点处理协处理器。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,主频最高可达300MIPS。 主要应用:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 3种类型:ARM926EJ-S、ARM946E-S和ARM966E-S。5、 ARM10E微处理器系列与同等的ARM9比较,在同样的时钟频率下,性能提高了近50%,功

8、耗极低。支持DSP指令集。6级整数流水线,指令执行效率更高。支持32位ARM指令集和16位Thumb指令集。支持VFP10浮点处理协处理器。全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。支持数据Cache和指令Cache。 主频最高可达400MIPS。内嵌并行读/写操作部件。主要应用:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。3种类型:ARM1020E、ARM1022E和ARM1026EJ-S。6、 ARM11微处理器系列ARM1136J-S发布于2003年,针对高性能和高能效的应用而设计。集成具有独立load-sto

9、re和算术流水线的8级流水线。可进行快速浮点运算,增加了向量浮点单元。7、 ARM Cortex微处理器系列(1)ARM Cortex-MARM Cortex-M3处理器是面向低成本,小管脚数目以及低功耗应用,且具有高运算能力和中断响应能力的处理器32位内核。Cortex-m3处理器采用了纯Thumb-2指令。中断延迟最大需12个周期(ARM7为2442个)。带睡眠模式,8段MPU(存储器保护单元)。处理速度1.25MIPS/MHz(ARM7为0.9MIPS/MHz)。功耗为0.19Mw/MHz(ARM7为0.28mW/MHz)。目前最便宜的Cortex-M3内核的ARM单片机售价1美元。(2

10、)ARM Cortex-RARM Cortex-R系列处理器目前包括ARM CortexR4和ARM Cortex-R4F两个型号,主要适用于实时系统的嵌入式处理器,如硬盘、打印机、汽车安全系统。ARM CortexR4采用了90纳米生产工艺,最高运行频率可达400MHz。基于低耗费的超量8段流水线,带有高级分支预测功能,运算速度超过1.6MPIS/MHz。ARM Cortex-R4F拥有针对汽车市场而开发的各项先进 功能,包括自动除错功能、可相互连结的错误侦测机制,以及可选择优化的浮点运算单元(FPU,Floating-Point Unit)。(3)ARM Cortex-AARM v7-A系

11、列支持大型嵌入式操作系统(Symbian、Linux、WinCE、WM等)。典型应用:高端手机、手持仪器。ARM Cortex-A8处理器是基于ARMv7架构的首款应用级处理器。运算能力:600MHz1GHz。具有13级整数运算流水线,10级NEON媒体运算流水线。功耗最优的同时,实现2.0MIPS/MHz的性能。三、 Cortex-M38、 特点采用哈佛结构,有独立的指令总线I-Code和数据总线D-Code,具有带分支预测功能的3级流水线。32位单周期乘法,支持硬件除法。内核水平上支持低功耗模式,功耗低于0.19mW/MHz;处理器直接支持8位字节、16位半字或者32位的数据类型。3级流水

12、线:取指、译码、执行。无论处理器处于何种状态,程序计数器R15(PC)总是指向“正在取指”的指令。PC值=当前程序执行位置+49、 寄存器Cortex-M3处理器拥有22个用户可以访问的32位寄存器,包括R0R15寄存器组合5个特殊功能寄存器。其中R13作为堆栈指针SP,有两个寄存器。通用寄存器R0R12:用于数据操作。大部分16位Thumb指令只能访问R0R7,32位的Thumb指令可访问所有寄存器。堆栈指针R13(SP):有两个堆栈指针,主堆栈指针(MSP,复位后默认的堆栈指针)和进程堆栈指针(PSP)。连接寄存器R14(LR):子程序的返回地址自动存入R14。程序计数器R15(PC):读

13、PC时返回的地址时当前指令的地址+4程序状态寄存器组(PSRs):应用状态寄存器(APSR)、中断状态寄存器(IPSR)和执行状态寄存器(EPSR)。中断屏蔽寄存器组:中断屏蔽寄存器PRIMASK、FAULTMASK、优先级屏蔽寄存器BASEPRI,用于控制异常的使能和除能。控制寄存器CONTROL:定义特权级别或者选择当前的堆栈指针。10、 操作模式和特权级别处理模式(Handler mode)和线程模式(Thread mode),用于区别普通应用程序和异常服务程序。复位时处理器进入线程模式,异常返回后也进入该模式。特权级和用户级的代码均可在线程模式下运行。处理模式只能在出现异常时进入,且所

14、有代码都特特权访问。复位后,处理器进入线程模式和特权级访问。特权级下,程序可以访问所有的存储器(如果有MPU,MPU规定的除外),并且可执行所有指令。11、 体系的异常、中断及向量表嵌套向量中断控制器(NVIC,Nested Vectored Interrupt Control)支持11中系统异常、240个外部中断输入和fault管理机制。异常:所有打断正常执行流的事件。与“中断”经常混合使用。“异常”一般是由Cortex-M3内核的活动(执行指令或访问存储器)产生的。“中断”对于内核来说是“意外的突发事件”,请求信号一般来自内核的外部(片上外设或外扩的设备)。系统异常是Cortex-M3内核

15、支持的基本异常,与具体的芯片无关。外部中断是与芯片相关的,芯片厂商根据需要和用途设计中断源数目(1240)和优先级的位数。异常发生且得到处理器响应,Cortex-M3硬件自动完成以下操作:(1) 入栈:将8个寄存器的值压入堆栈(2) 取向量:从向量表中取出对应异常服务程序的入口地址(3) 更新寄存器:选择堆栈指针MSP/PSP,更新SP、LR、PC。12、 存储系统 Cortex-M3支持4GB的地址空间,程序可以在代码区、内部SRAM和外部RAM中运行。(1)存储器格式位于地址A的字包含的字节地址位于地址A、A+1、A+2和A+3位于地址A的半字包含的字节位于地址A和A+1位于地址A+2的半

16、字包含的字节地址位于地址A+2、A+3位于地址A的字包含的半字位于地址A和A+2小端(Little-endian)存储器系统:一个字当中最低地址的字节被看作是最低字节,最高地址的字节被看作是最高位字节。Bit31-24Bit23-16Bit15-8Bit7-0字节格式D7:0D7:0D7:0D7:0半字格式D15:8D7:0D15:8D7:0字格式D31:24D23:16D15:8D7:0大端(Big-endian)存储器系统:处理器将最高位字节保存在最低地址,最低位字节保存在最高地址。Bit31-24Bit23-16Bit15-8Bit7-0字节格式D7:0D7:0D7:0D7:0半字格式D

17、7:0D15:8D7:0D15:8字格式D7:0D15:8D23:16D31:24(2)位操作 位操作区:支持位操作的地址区,包括两个地址范围:0x2000 00000x200F FFFF(SRAM区最低1MB地址);0x4000 00000x400F FFFF(片上外设区最低1MB地址); 位别名区:对应于位操作区映射的32MB地址区域,包括两个对应的地址范围:0x2200 00000x23FF FFFC;0x4200 00000x43FF FFFC 位别名:对位别名地址的访问最终会被变换成对应位操作区的位访问。 AliasAddr=BitAlias_BaseAddr+(BitAddr-Bi

18、tOp_BaseAddr)*32+BitNumber*4AliasAddr:位别名区中的地址BitAlias_BaseAddr:位别名区的基地址,0x2200 0000或0x4200 0000BitOp_BaseAddr:位操作区的基地址,0x2000 0000或0x4000 0000BitAddr:位操作区中的字地址,将要操作的位在该字中BitNumber:要操作的位是第几位(3)非对齐的存储器访问对于字来说:任何不能被4整除的地址都是非对齐的。对于半字:任何不能被2整除的地址都是非对齐的。Cortex-M3支持在单一的访问中使用非对齐的传送。处理器内部会对非对齐的访问转换成若干个对齐的访问

19、,但是会浪费很多总线周期,影响程序执行效率。因此建议C语言编程中定义的多字节变量或结构体都是对齐存放。四、 Cortex-M3指令系统13、 寻址方式寄存器寻址MOV R1,R2SUB R0,R1,R2立即寻址SUBS R0,R0,#1MOV R0,#0XFF000寄存器移位寻址MOV R0,R2,LSL #3ANDS R1,R1,R2,LSL R3寄存器间接寻址LDR R1,R2基址寻址LDR R2,R3,#0X0CSTR R1,R0,#-4多寄存器寻址LDMIA SP!,R4-R11,PCSTMIA R1!,R3-R9堆栈寻址向上生长:递增堆栈向下生长:递减堆栈满堆栈:堆栈指针指向最后压入

20、栈的有效数据项空堆栈:堆栈指针指向下一个待压入数据的空位置STMDB SP!,R1-R7,LR ;入栈,满递减堆栈LDMIA SP!,R1-R7,LR ;出栈,满递减堆栈相对寻址由PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后的地址即为操作数的有效地址。14、 Thumb-2指令集2.1 指令格式 S , , S , ,号内是必需的,号内是可选的。2.2 存储器访问指令(1)LDR和STR-加载存储指令LDR:从存储器中读取数据放入寄存器;STR:将寄存器中的数据保存到存储器。LDR R1,R0,#0X12(2)LDM和STM-多寄存器加载存储指令用于较大数据量的复制、参数传递等,

21、实现在一组寄存器和一块连续的内存单元之间传输数据。LDMcond Rn!,reglistSTMcond Rn!,reglist模式说明: IA:每次传送后地址加4 DB:每次传送前地址减4 FD:满递减堆栈 EA:空递增堆栈“!”表示最后的地址写回到Rn中。2.3 数据处理运算指令(1)数据传送指令 MOV Rd,operand2 MVN Rd,operand2 ;加载一个数的反码值 MOVW R1,#0x1234 ;把16位立即数放到寄存器的低16位,高16位清零 MOVT R1,#0x5678 ;把16位立即数放到寄存器的高16位,低16位不变 CPY Rd,Rn ;寄存器间拷贝(2)算术逻辑运算指令加法:ADC、ADD、ADDW减法:SBC、SUB、SUBW移位:LSL、LSR、ORR、EOR、AND、RRX、ROR、ORN、ASR、BIC(3)位段处理指令 位段清零:BFC 位段插入:BFI 位反转:RBIT 位段提取:SBFX、UBFX(4)字节序反指令 REV、REV16、REVSH(5)带符号扩展指令(6)比较指令(7)乘除法和饱和运算指令2.4 分支转移指令2.5 杂项指令2.6 伪指令

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2