




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年设计的第一个微处理器采用的是版本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处理器中使用。在降低耗电量地同时,强化了图形处理性能。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核心V1ARM1V2ARM2V2aARM2As, 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微处理器系列低功耗的32位RISC处理器,冯诺依曼结构。极低的功耗,适合便携式产品。能够提供0.9MIPS的三级流水线结构代码密度高,兼容16位的Thumb指令集。主频最高可达130MIPS。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用2、 ARM7TDMI微处理器ARM7TMDI是使用广泛的32位嵌入式RISC处理器,属低端ARM处理器核。注:“ARM核”并不是芯片,ARM核与其它部件如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微处理器系列单一处理器内核提供微控制器、DSP、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%,功耗极低。支持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-store和算术流水线的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)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系列支持大型嵌入式操作系统(Symbian、Linux、WinCE、WM等)。典型应用:高端手机、手持仪器。ARM Cortex-A8处理器是基于ARMv7架构的首款应用级处理器。运算能力:600MHz1GHz。具有13级整数运算流水线,10级NEON媒体运算流水线。功耗最优的同时,实现2.0MIPS/MHz的性能。三、 Cortex-M31、 特点采用哈佛结构,有独立的指令总线I-Code和数据总线D-Code,具有带分支预测功能的3级流水线。32位单周期乘法,支持硬件除法。内核水平上支持低功耗模式,功耗低于0.19mW/MHz;处理器直接支持8位字节、16位半字或者32位的数据类型。3级流水线:取指、译码、执行。无论处理器处于何种状态,程序计数器R15(PC)总是指向“正在取指”的指令。PC值=当前程序执行位置+42、 寄存器Cortex-M3处理器拥有22个用户可以访问的32位寄存器,包括R0R15寄存器组合5个特殊功能寄存器。其中R13作为堆栈指针SP,有两个寄存器。通用寄存器R0R12:用于数据操作。大部分16位Thumb指令只能访问R0R7,32位的Thumb指令可访问所有寄存器。堆栈指针R13(SP):有两个堆栈指针,主堆栈指针(MSP,复位后默认的堆栈指针)和进程堆栈指针(PSP)。连接寄存器R14(LR):子程序的返回地址自动存入R14。程序计数器R15(PC):读PC时返回的地址时当前指令的地址+4程序状态寄存器组(PSRs):应用状态寄存器(APSR)、中断状态寄存器(IPSR)和执行状态寄存器(EPSR)。中断屏蔽寄存器组:中断屏蔽寄存器PRIMASK、FAULTMASK、优先级屏蔽寄存器BASEPRI,用于控制异常的使能和除能。控制寄存器CONTROL:定义特权级别或者选择当前的堆栈指针。3、 操作模式和特权级别处理模式(Handler mode)和线程模式(Thread mode),用于区别普通应用程序和异常服务程序。复位时处理器进入线程模式,异常返回后也进入该模式。特权级和用户级的代码均可在线程模式下运行。处理模式只能在出现异常时进入,且所有代码都特特权访问。复位后,处理器进入线程模式和特权级访问。特权级下,程序可以访问所有的存储器(如果有MPU,MPU规定的除外),并且可执行所有指令。4、 体系的异常、中断及向量表嵌套向量中断控制器(NVIC,Nested Vectored Interrupt Control)支持11中系统异常、240个外部中断输入和fault管理机制。异常:所有打断正常执行流的事件。与“中断”经常混合使用。“异常”一般是由Cortex-M3内核的活动(执行指令或访问存储器)产生的。“中断”对于内核来说是“意外的突发事件”,请求信号一般来自内核的外部(片上外设或外扩的设备)。系统异常是Cortex-M3内核支持的基本异常,与具体的芯片无关。外部中断是与芯片相关的,芯片厂商根据需要和用途设计中断源数目(1240)和优先级的位数。异常发生且得到处理器响应,Cortex-M3硬件自动完成以下操作:(1) 入栈:将8个寄存器的值压入堆栈(2) 取向量:从向量表中取出对应异常服务程序的入口地址(3) 更新寄存器:选择堆栈指针MSP/PSP,更新SP、LR、PC。5、 存储系统Cortex-M3支持4GB的地址空间,程序可以在代码区、内部SRAM和外部RAM中运行。(1)存储器格式位于地址A的字包含的字节地址位于地址A、A+1、A+2和A+3位于地址A的半字包含的字节位于地址A和A+1位于地址A+2的半字包含的字节地址位于地址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半字格式D7: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-BitOp_BaseAddr)*32+BitNumber*4AliasAddr:位别名区中的地址BitAlias_BaseAddr:位别名区的基地址,0x2200 0000或0x4200 0000BitOp_BaseAddr:位操作区的基地址,0x2000 0000或0x4000 0000BitAddr:位操作区中的字地址,将要操作的位在该字中BitNumber:要操作的位是第几位(3)非对齐的存储器访问对于字来说:任何不能被4整除的地址都是非对齐的。对于半字:任何不能被2整除的地址都是非对齐的。Cortex-M3支持在单一的访问中使用非对齐的传送。处理器内部会对非对齐的访问转换成若干个对齐的访问,但是会浪费很多总线周期,影响程序执行效率。因此建议C语言编程中定义的多字节变量或结构体都是对齐存放。四、 Cortex-M3指令系统1、 寻址方式寄存器寻址MOV R1,R2SUBR0,R1,R2立即寻址SUBS R0,R0,#1MOV R0,#0XFF000寄存器移位寻址MOVR0,R2,LSL #3ANDSR1,R1,R2,LSL R3寄存器间接寻址LDRR1,R2基址寻址LDRR2,R3,#0X0CSTRR1,R0,#-4多寄存器寻址LDMIASP!,R4-R11,PCSTMIAR1!,R3-R9堆栈寻址向上生长:递增堆栈向下生长:递减堆栈满堆栈:堆栈指针指向最后压入栈的有效数据项空堆栈:堆栈指针指向下一个待压入数据的空位置STMDBSP!,R1-R7,LR;入栈,满递减堆栈LDMIASP!,R1-R7,LR;出栈,满递减堆栈相对寻址由PC提供基准地址,指令中的地址码字段作为偏移量,两者相加后的地址即为操作数的有效地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电化学储能系统的智能监测与数据管理方案
- 2023-2024学年四年级英语上册期中素养测评基础卷(三)(含答案)
- 死亡与死亡教育死亡教育69课件
- 胎盘早剥护理周立蓉71课件
- 水稻生育时期课件
- 水利工程设计方案
- 水电站消防验收课件
- 水电消防知识培训课件成果
- 中成药非处方药习题解析31课件
- 2025版购买高档公寓产权合同
- 浙江云格电器股份有限公司年产6万台车载压缩机冰箱及制冰机生产项目环境影响报告
- 高考英语词汇词形转换之动词变名词清单(四)
- 滁州市珠龙广卫绢云母粉厂滁州市南谯区将军山绢云母矿1万吨-年露天采矿工程项目环境影响报告书
- 人民医院心血管外科临床技术操作规范2023版
- 2023年江苏小高考历史试卷
- 主要组织相容性复合体及其编码分子
- 优化物理教学策略的思考(黄恕伯)
- 中国移动-安全-L1,2,3(珍藏版)
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- scratch3.0编程校本课程
评论
0/150
提交评论