下载

3下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 《ARM 白皮书—Cortex-M3 处理器简介》

《ARM 白皮书—Cortex-M3 处理器简介》.pdf

《ARM 白皮书—Cortex-M3 处理器简介》

xyzboxhome
2009-11-30 0人阅读 举报 0 0 暂无简介

简介:本文档为《《ARM 白皮书—Cortex-M3 处理器简介》pdf》,可适用于教育、出版领域

广州周立功单片机发展有限公司地址:广州市天河北路号光大银行大厦楼Fhttp:wwwzlgmcucomARM白皮书ARMCortexM处理器简介ShyamSadasivanOctober专注的力量成就梦想ARM白皮书目录目录第章简介通过提高效率来提高性能快速有效的应用程序开发源于简易的使用方法针对敏感市场降低成本和功耗集成的调试和跟踪功能推进上市的步伐从ARMTM升级为CortexM可获取更佳的性能和功效第章CortexM处理器的架构和特性CortexM内核Thumb指令集架构嵌套向量中断控制器(NVIC)存储器保护单元(MPU)调试和跟踪总线矩阵和接口第章下一代MCU以位MCU的成本提供位的性能有效使用内存可降低成本低成本的调试和跟踪技术低延迟中断处理机制业内新的突破第章可靠安全的汽车和工业控制使用确定的中断处理来预测汽车的响应使用精细的存储器保护来获得可靠的软件集成加快位提取的速度来获得有效的IO数据处理保护操作提供更安全的工业环境第章针对无线网络实现了更低的功耗时钟门控和内置睡眠模式可以降低功耗通过灵活的工作方式来增加处于睡眠模式的时间真正实现省电第章更快地投入市场简单、可配置的硬件设计和调试简易的应用程序开发第章总结附录A周立功公司相关信息IARM白皮书第一章简介第章简介基于ARM嵌入式处理器的片上系统解决方案可应用于企业应用、汽车系统家庭网络和无线技术等市场领域。ARMCortexTM系列提供了一个标准的体系结构来满足以上各种技术的不同性能要求其包含的处理器基于ARMv架构的三个分工明确的部分。A部分面向复杂的尖端应用程序用于运行开放式的复杂操作系统R部分针对实时系统M部分为成本控制和微控制器应用提供优化。CortexM是首款基于ARMvM架构的处理器是专门为了在微控制器汽车车身系统工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的它大大简化了可编程的复杂性使ARM架构成为各种应用方案(即使是最简单的方案)的上佳选择。通过提高效率来提高性能处理器可通过两种途径来提高它的性能一是“workhard”也就是直接通过提高时钟频率来提高性能这种情况以高功耗作为代价并增加了设计的复杂性。另一种是“worksmart”在低时钟频率的情况下提高运算效率使处理器可以凭借简单的低功耗设计来完成与第一种情况同样的功能。CortexM处理器的核心是基于哈佛架构的级流水线内核该内核集成了分支预测单周期乘法硬件除法等众多功能强大的特性使其在Dhrystonebenchmark上具有出色的表现(DMIPSMHz)。根据Dhrystonebenchmark的测评结果采用新的Thumb®指令集架构的CortexM处理器与执行Thumb指令的ARMTDMIS®处理器相比每兆赫的效率提高了与执行ARM指令的ARMTDMIS处理器相比效率提高了。快速有效的应用程序开发源于简易的使用方法缩短上市时间与降低开发成本是选择微控制器的关键标准而快速和简易的软件开发能力是实现这些要求的关键。CortexM处理器专门针对快速和简单的编程而设计用户无需深厚的架构知识或编写任何汇编代码就可以建立简单的应用程序。CortexM处理器带有一个简化的基于栈的编程模型该模型与传统的ARM架构兼容同时与传统的位、位架构所使用的系统相似它简化了位、位到位的转换过程。此外使用基于硬件的中断机制意味着编写中断服务程序(handlers)不再重要。在不需要汇编代码寄存器操作的情况下启动代码得到了大大的简化。在位字段处理、硬件除法和IfThen指令的协助下Thumb指令集架构(InstructionSetArchitecture-ISA)底层的关键特性使C代码的执行变得更加自然。在开发方面Thumb指令自动优化了性能和代码密度在无需交互使用ARM代码和Thumb代码的情况下加快了开发的进程简化了编译目标的长期维护和支持工作。如此一来用户不但可以继续使用C代码而且还免去了建立预编译目标代码库的麻烦代码在更大程度上获得了重复利用。针对敏感市场降低成本和功耗成本是采用高性能微控制器永恒的屏障。由于先进的制造工艺相当昂贵只有降低芯片的尺寸才有可能从本质上降低成本。为了减小系统区域CortexM处理器采用了至今为止最小的ARM内核该内核的核心部分(umG)的门数仅为个它把紧密相连的ARM白皮书第一章简介系统部件有效地结合在一起。通过采用非对齐数据存储技术、原子位操作和Thumb指令集存储容量的需求得到最小化其中Thumb指令集对指令存储容量的要求比ARM指令减少超过。为了迎合对节能要求日益增长的大型家电和无线网络市场CortexM处理器支持扩展时钟门控和内置睡眠模式。当采用ARMMetroTM标准单元库和TSMCG制造工艺时处理器运行在MHz的目标频率下的功耗仅为mW芯片封装面积只有mm。集成的调试和跟踪功能推进上市的步伐嵌入式系统通常不具备图形用户界面软件调试也因此成了程序员的一大难题。传统上在线仿真器(ICE)单元作为插件使用通过大家熟悉的PC界面向系统提供窗口。然而随着系统体积的变小及其复杂性的增加物理附加类似的调试单元已经再难成为可行的方案。CortexM处理器通过其集成部件在硬件的本身实现了各种调试技术使调试在具备跟踪和分析、断点、观察点和代码修补功能的同时速度也获得了有效的提高促使产品可以更快地投入市场。此外处理器还通过一个传统的JTAG端口或一个适用于低管脚数封装(LPC封装)器件的管脚串行线调试(SerialWireDebug-SWD)端口赋予系统高度的可视性。从ARMTM升级为CortexM可获取更佳的性能和功效在过去十年中ARM系列处理器被广泛应用于众多领域。之后CortexM在ARM的基础上开发成功为基于ARM处理器系统的升级开辟了通道。它的中心内核效率更高编程模型更简单它具有出色的确定中断行为其集成外设以低成本提供了更强大的性能。表ARMTDMIS和CortexM的比较(采用MHz频率和TSMCG制程)特性ARMTDMISCortexM架构ARMvT(冯·诺依曼)ARMvM(哈佛)ISA支持ThumbARMThumbThumb流水线级级分支预测中断FIQIRQNMI到个物理中断中断延迟-个时钟周期个时钟周期休眠模式无内置存储器保护无段存储器保护单元DhrystoneDMIPSMHz(ARM模式)DMIPSMHz功耗mWMHzmWMHz面积mm(仅内核)mm(内核外设)**不包含可选系统外设(MPU和ETM)或者集成的部件ARM白皮书第一章简介图ARMTDMIS(ARM)和CortexM(Thumb)的性能对比相关的Benchmark性能(每MHz)电讯工业网络办公室图ARMTDMIS(ARM)和CortexM(Thumb)的代码大小相关的Benchmark代码大小工业电讯网络办公室ARM白皮书第二章CortexM处理器的架构和特性第章CortexM处理器的架构和特性基于ARMv架构的CortexM处理器带有一个分级结构。它集成了名为CMCore的中心处理器内核和先进的系统外设实现了内置的中断控制、存储器保护以及系统的调试和跟踪功能。这些外设可进行高度配置允许CortexM处理器处理大范围的应用并更贴近系统的需求。目前CortexM内核和集成部件(图)已进行了专门的设计用于实现最小存储容量、减少管脚数目和降低功耗。CortexM内核CortexM中央内核基于哈佛架构指令和数据各使用一条总线(图)。与CortexM不同ARM系列处理器使用冯·诺依曼(VonNeumann)架构指令和数据共用信号总线以及存储器。由于指令和数据可以从存储器中同时读取所以CortexM处理器对多个操作并行执行加快了应用程序的执行速度。内核流水线分个阶段:取指、译码和执行。当遇到分支指令时译码阶段也包含预测的指令取指这提高了执行的速度。处理器在译码阶段期间自行对分支目的地指令进行取指。在稍后的执行过程中处理完分支指令后便知道下一条要执行的指令。如果分支不跳转那么紧跟着的下一条指令随时可供使用。如果分支跳转那么在跳转的同时分支指令可供使用空闲时间限制为一个周期。CortexM内核包含一个适用于传统Thumb和新型Thumb指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。CortexM处理器是一个位处理器带有位宽的数据路径寄存器库和存储器接口。其中有个通用寄存器两个堆栈指针一个链接寄存器一个程序计数器和一系列包含编程状态寄存器的特殊寄存器。CortexM处理器支持两种工作模式(线程(Thread)和处理器(Handler))和两个等级的访问形式(有特权或无特权)在不牺牲应用程序安全的前提下实现了对复杂的开放式系统的执行。无特权代码的执行限制或拒绝对某些资源的访问如某个指令或指定的存储器位置。Thread是常用的工作模式它同时支持享有特权的代码以及没有特权的代码。当异常发生时进入Handler模式在该模式中所有代码都享有特权。此外所有操作均根据以下两种工作状态进行分类Thumb代表常规执行操作Debug代表调试操作。图CortexM处理器硬件除法器控制逻辑单周期指令接口数据接口可配置NVICETMDAP存储器保护单元串行线浏览器数据观察点Flash总线矩阵代码区接口SRAM和ARM内核NVIC接口ETM接口位乘法器Thumb和Thumb译码外设IF位ALUARM白皮书第二章CortexM处理器的架构和特性CortexM处理器是一个存储器映射系统为高达GB的可寻址存储空间提供简单和固定的存储器映射同时这些空间为代码(代码空间)、SRAM(存储空间)外部存储器器件和内部外部外设提供预定义的专用地址。另外还有一个特殊区域专门供厂家使用。图存储器映射借助bitbanding技术(图)CortexM处理器可以在简单系统中直接对数据的单个位进行访问。存储器映射包含两个位于SRAM的大小均为MB的bitband区域和映射到MB别名区域的外设空间。在别名区域中某个地址上的加载存储操作将直接转化为对被该地址别名的位的操作。对别名区域中的某个地址进行写操作如果使其最低有效位置位那么bitband位为如果使其最低有效位清零那么bitband位为零。读别名后的地址将直接返回适当的bitband位中的值。除此之外该操作为原子位操作其他总线活动不能对其中断。图传统的位处理方法和CortexMbitbanding的比较ARM白皮书第二章CortexM处理器的架构和特性LDRR,=xFFFFF设置地址MOVR,#x设置数据LDRR,R读取ORRR,R修改位STRR,R写回结果LDRR,=xFFFFFC设置地址MOVR,#x设置数据STRR,R写入传统的位处理方法带bitbanding属性的直接的单周期访问从SRAM中读取字节MB别名区域写字节到SRAM屏蔽和修改位元素MBSRAMbitband区域基于传统ARM处理器的系统只支持访问对齐的数据只有沿着对齐的字边界才可以对数据进行访问和存储。CortexM处理器采用非对齐数据访问方式使非对齐数据可以在单核访问中进行传输。当使用非对齐传输时这些传输将转换为多个对齐传输但这一过程不为程序员所见。CortexM处理器除了支持单周期位乘法操作之外还支持带符号的和不带符号的除法操作这些操作使用SDIV和UDIV指令根据操作数大小的不同在到个周期内完成。如果被除数和除数大小接近那么除法操作可以更快地完成。CortexM处理器凭借着这些在数学能力方面的改进成为了众多高数字处理强度应用(如传感器读取和取值或硬件在环仿真系统)所亲昧的理想选择。Thumb指令集架构ARMvM是ARMv架构的微控制器部分它和早期的ARM架构不同它在早期的ARM架构中只单独支持Thumb指令。Thumb技术是位和位指令的结合实现了位ARM指令性能匹配原始的位Thumb指令集并与之后向兼容。图显示了预测的Dhrystonebenchmark结果由结果可见Thumb技术确实达到了预期的目标。图与ARM、Thumb以及Thum相关的Dhrystone性能和代码大小在基于ARM处理器的系统中处理器内核会根据特定的应用切换到Thumb状态(以获取高代码密度)或ARM状态(以获取出色的性能)。然而在CortexM处理器中无需交互使用指令位指令和位指令共存于同一模式复杂性大幅下降代码密度和性能ARM白皮书第二章CortexM处理器的架构和特性均得到提高。由于Thumb指令是位Thumb指令的扩展集所以CortexM处理器可以执行之前所写的任何Thumb代码。得益于Thumb指令CortexM处理器同时兼容于其他ARMCortex处理器的家族成员。Thumb指令集用于多种不同应用使紧凑代码的编写更加简单快捷。BFI和BFC指令为位字段指令在网络信息包处理等应用中可大派用场。SBFX和UBFX指令改进了从寄存器插入或提取多个位的能力这一能力在汽车应用中的表现相当出色。RBIT指令的作用是将一个字中的位反转在DFT等DSP运算法则的应用中非常有用。表分支指令TBB和TBH用于平衡高性能和代码的紧凑性。Thumb指令集还引入了一个新的IfThen结构意味着可以有多达个后续指令进行条件执行。嵌套向量中断控制器(NVIC)NVIC是CortexM处理器中一个完整的部分它可以进行高度配置为处理器提供出色的中断处理能力。在NVIC的标准执行中它提供了一个非屏蔽中断(NMI)和个通用物理中断这些中断带有级的抢占优先权。NVIC可以通过综合选择配置为到个物理中断中的任何一个并带有多达个优先级。CortexM处理器使用一个可以重复定位的向量表表中包含了将要执行的函数的地址可供具体的中断处理器使用。中断被接受之后处理器通过指令总线接口从向量表中获取地址。向量表复位时指向零编程控制寄存器可以使向量表重新定位。为了减少门计数并提高系统的灵活性CortexM已从ARM处理器的分组映像寄存器异常模型升级到了基于堆栈的异常模型。当异常发生时编程计数器、编程状态寄存器、链接寄存器和R-R、R等通用寄存器将被压进堆栈。在数据总线对寄存器压栈的同时指令总线从向量表中识别出异常向量并获取异常代码的第一条指令。一旦压栈和取指完成中断服务程序或故障处理程序就开始执行随后寄存器自动恢复中断了的程序也因此恢复正常的执行。由于可以在硬件中处理堆栈操作CortexM处理器免去了在传统的C语言中断服务程序中为了完成堆栈处理所要编写的汇编程序包这使应用程序的开发变得更加简单。NVIC支持中断嵌套(压栈)允许通过提高中断的优先级对中断进行提前处理。它还支持中断的动态优先权重置。优先权级别可以在运行期间通过软件进行修改。正在处理的中断会防止被进一步激活直到中断服务程序完成所以在改变它们的优先级的同时也避免了意外重新进入中断的风险。在背对背中断情况中传统的系统将重复状态保存和状态恢复的过程两次导致了延迟的增加。CortexM处理器使用末尾连锁(tailchaining)技术简化了激活的和未决的中断之间的移动。末尾连锁技术把需要用时个时钟周期才能完成的连续的堆栈弹出和压入操作替换为个周期就能完成的指令取指实现了延迟的降低。处理器状态在进入中断时自动保存在中断退出时自动恢复比软件执行用时更少大大提高了频率为MHz的子系统的性能。图NVIC中的末尾连锁(Tailchaining)技术ARM白皮书第二章CortexM处理器的架构和特性传统的中断处理CortexM中断处理压栈压栈压栈弹出弹出弹出末尾连锁最高NVIC还采用了支持内置睡眠模式的CortexM处理器的电源管理方案。立即睡眠模式(SleepNowmode)被等待中断(WFI)或等待事件(WFE)其中一个指令调用这些指令可以使内核立即进入低功耗模式异常被挂起。退出时睡眠(SleepOnExit)模式在系统退出最低优先级的中断服务程序时使其进入低功耗模式。内核保持睡眠状态直到遇上另一个异常。由于只有一个中断可以退出该模式所以系统状态不会被恢复。系统控制寄存器中的SLEEPDEEP位如果被置位那么该位可以用来控制内核以及其他系统部件以获得最理想的节电方案。NVIC还集成了一个递减计数的位系统嘀哒(SysTick)定时器它定时产生中断提供理想的时钟来驱动实时操作系统或其他预定的任务。存储器保护单元(MPU)MPU是CortexM处理器中一个可选的部分它通过保护用户应用程序中操作系统所使用的重要数据分离处理任务(禁止访问各自的数据)禁止访问存储器区域将存储器区域定义为只读以及对有可能破坏系统的未知的存储器访问进行检测等手段来改善嵌入式系统的可靠性。MPU使应用程序可以拆分为多个进程。每个进程不仅有指定的存储器(代码、数据、栈和堆)和器件而且还可以访问共享的存储器和器件。MPU还会增强用户和特权访问规则。这包括以正确的优先级别执行代码以及加强享有特权的代码和用户代码对存储器和器件的使用权的控制。MPU将存储器分成不同的区域并通过防止无授权的访问对存储器实施保护。MPU支持多达个区域每个区域又可以分为个子区域。所支持的区域大小从字节开始以为倍数递增最大可达到GB可寻址空间。每个区域都对应一个区域号码(从开始的索引)用于对区域进行寻址。另外也可以为享有特权的地址定义一个默认的背景存储器映射。对未在MPU区域中定义的或在区域设置中被禁止的存储器位置进行访问将会导致存储器管理故障(MemoryManagementFault)异常的产生。区域的保护是根据规则来执行的这些规则以处理的类型(读、写和执行)和执行访问的代码的优先级为基础进行制定。每个区域都包含一组位影响访问的允许类型以及一组位影响所允许的总线操作。MPU还支持重叠的区域(覆盖同一地址的区域)。由于区域大小是乘所得的结果所以重叠意味着一个区域有可能完全包含在另一个区域里面。因此有可能出现多个区域包含在单个区域中以及嵌套重叠的情况。当寻址重叠区域中的位置时返回的将是拥有最高区域号码的区域。ARM白皮书第二章CortexM处理器的架构和特性调试和跟踪对CortexM处理器系统的调试访问是通过调试访问端口(DebugAccessPort)来实现的。该端口可以作为串行线调试端口(SWDP)(构成一个两脚(时钟和数据)接口)或串行线JTAG调试端口(SWJDP)(使能JTAG或SW协议)使用。SWJDP在上电复位时默认为JTAG模式并且可以通过外部调试硬件所提供的控制序列进行协议的切换。调试操作可以通过断点、观察点、出错条件或外部调试请求等各种事件进行触发。当调试事件发生时CortexM处理器可以进入挂起模式或者调试监控模式。在挂起模式期间处理器将完全停止程序的执行。挂起模式支持单步操作。中断可以暂停也可以在单步运行期间进行调用如果对其屏蔽外部中断将在逐步运行期间被忽略。在调试监控模式中处理器通过执行异常处理程序来完成各种调试任务同时允许享有更高优先权的异常发生。该模式同样支持单步操作。Flash块和断点(FPB)单元执行个程序断点和两个常量数据取指断点或者执行块操作指令或位于代码存储空间和系统存储空间之间的常量数据。该单元包含个指令比较器用于匹配代码空间的指令取指。通过向处理器返回一个断点指令每个比较器都可以把代码重新映射到系统空间的某个区域或执行一个硬件断点。这个单元还包含两个常量比较器用于匹配从代码空间加载的常量以及将代码重新映射到系统空间的某一个区域。数据观察点和跟踪(DWT)单元包含个比较器每一个比较器都可以配置为硬件观察点。当比较器配置为观察点使用时它即可以比较数据地址也可以比较编程计数器。DWT比较器还可以配置用来触发PC采样事件和数据地址采样事件以及通过配置使嵌入式跟踪宏单元(ETM)发出指令跟踪流中的触发数据包。ETM是设计用于单独支持指令跟踪的可选部件其作用是确保在对区域的影响最小的情况下实现程序执行的重建。ETM使指令的跟踪具有高性能和实时性数据通过压缩处理器内核的跟踪信息进行传输可以最小化带宽的需求。图CortexM跟踪系统CortexMETMTPIUITMDWT跟踪端口分析器指令跟踪硬件和软件跟踪芯片边界跟踪端口调试主机CortexM处理器采用带DWT和ITM(测量跟踪宏单元)的数据跟踪技术。DWT提供指令执行统计并产生观察点事件来调用调试或触发指定系统事件上的ETM。ITM是由应用程序驱动的跟踪资源支持跟踪OS和应用程序事件的printf类型调试。它接受DWT的硬件跟踪数据包以及处理器内核的软件跟踪激励并使用时间戳来发送诊断系统信息。跟踪端口接口单元(TracePortInterfaceUnitTPIU)接收ETM和ITM的跟踪信息然后将其合并、格式化并通过串行线浏览器(SerialWireViewerSWV)发送到外部跟踪分析器单元。通过单管脚导出数据流SWV支持简单和具有成本效率的系统事件压型。曼切斯特编码和UART都是SWV支持的格式。ARM白皮书第二章CortexM处理器的架构和特性总线矩阵和接口CortexM处理器总线矩阵把处理器和调试接口连接到外部总线也就是把基于位AMBA®AHBLite的ICode、DCode和系统接口连接到基于位AMBAAPB™的专用外设总线(PrivatePeripheralBusPPB)。总线矩阵也采用非对齐数据访问方式以及bitbanding技术。位ICode接口用于获取代码空间中的指令只有CMCore可以对其访问。所有取指的宽度都是一个字每个字里面的指令数目取决于所执行代码的类型及其在存储器中的对齐方式。位DCode接口用于访问代码存储空间中的数据CMCore和DAP都可以对其访问。位系统接口分别获取和访问系统存储空间中的指令和数据与DCode相似可以被CMCore和DAP访问。PPB可以访问CortexM处理器系统外部的部件。ARM白皮书第三章下一代MCU以位MCU的成本提供位的性能第章下一代MCU以位MCU的成本提供位的性能微控制器单元(MCU)是一块高度集成的单芯片它集成了处理器、非易失性存储器(用于编程)、易失性存储器(用于存储数据)、IO端口、定时器和多种外设它的应用领域相当宽广从低端的通用应用延伸至高性能的数字信号控制。另外面对激烈的市场竞争是否能在提供性能优越、外设齐备的产品来满足广大用户群的同时保持低廉的成本使产品得以推广和应用已成为最大的挑战。图位MCU市场的增长MCU市场被位和位MCU长期占据为用户提供低成本的解决方案例如购买位的MCU只需美分。随着下一代应用方案对性能以及功能要求的提高MCU市场正向位架构加速前进届时将以极具竞争力的系统成本推出性能更高、使用更简单的位MCU。由于许多MCU都实现了工业标准的接口和外设因此在大多数情况下器件核心部分的处理器将成为区分MCU产品的最重要标准。此外ARM和ARM™处理器系列已经在MCU领域取得了巨大的成功再通过解读CortexM处理器想必用户将确信从位、位升级到位架构是明智的决定。由低位升级到位架构的主要动机之一是获得更出色的性能。不过性能是相对而言的例如高端媒体处理为了满足带宽的要求它所需的是非常高的系统时钟频率。而在MCU中评估性能的标准是flash存储器指令的快速执行、有效位的操作、廉价的调试和跟踪技术、以及强大的中断结构(该中断对于实时应用来说至关重要)。CortexM处理器把结构特性和内置的外设部件结合在一起为MCU设计者提供了低成本和高性能的解决方案在简化开发过程的同时大大缩短了产品投放市场的时间。有效使用内存可降低成本事实上在所有嵌入式设计的材料单中存储器都占据了主导的地位有效使用代码存储器和数据存储器成为降低成本的关键。CortexM处理器的Thumb技术和总线接口支持更高的代码密度和更有效的指令取址bithandling技术增强了数据处理的能力。Thumb指令是原始位Thumb指令和新位指令的结合它提供与位ARM指令集同样的功能。CortexM处理器的ICode接口对指令进行取指每个取指的宽度为一个字。位指令在存储器中以半字对齐取指时一次获取两个指令。对于字对齐的位指令取指在单个周期内完成对于半字对齐的位指令取指最多在两个周期内完成前提是访问零等待存储器。这样便可以灵活地使用指令并实现低取指延迟。虽然嵌入式flash存储器在众多嵌入式应用中颇受推崇但flash(flash工作在~MHz时)与处理器之间在速度上的差距也越来越大。为了消除这一差距系统必须在访问flash时提供高效的指令和数据获取操作。Flash存储器接口一般通过取指或者文字池取值来一次ARM白皮书第三章下一代MCU以位MCU的成本提供位的性能获取多个位的值。MOVW和MOVT指令能够更有效地插入位常量使用这两个指令可以使数据立即可用而无需像文字池那样需要执行一次加载操作。为了有效地利用片上RAM许多应用方案采用打包成一个字节大小的信号量(即数据的每一个位)。对信号量进行原子处理的传统方法是读字节屏蔽修改位然后再读回字节。CortexM使用bitbanding技术对这些过程进行了简化。MB大小的存储地址区域以别名标记为MB位特定的空间。当对该MB区域内的地址执行读或写操作时它将自动对别名标记的地址实行位复位或位清零操作。通过该机制多操作任务简化成了单核的写操作任务。为了有效地利用SRAMCortexM处理器还采用了非对齐数据访问技术。图是对齐和非对齐数据访问的存储空间分配图。每个格子代表一个字节长度的各种类型数据(每种类型数据要求的字节长度不同)。白色格子代表空的没有使用的存储空间。通过把尚未使用的存储空间整理成连续的空间无形上减少了对SRAM的需求。图对齐和非对齐数据访问的存储空间分配对齐非对齐bit长整型数据bit整型数据bit字符型数据低成本的调试和跟踪技术传统的系统调试一般由JTAG接口来执行通常需要个管脚这对于总共才有个管脚的低成本系统来说无疑是太奢侈了。CortexM处理器采用支持串行线调试(SerialWireDebug)技术的调试访问端口(DebugAccessPortDAP)调试只需两个管脚便可完成而且表现与JTAG接口同样出色。此外把可选的ETM部件添加到系统有利于实现出色的指令跟踪功能同时把成本的影响降至最低。通过把ROM代码和数据独立地重新映射到SRAM区域上FlashPatch技术针对大多数只有ROM的微控制器实现了对只读代码的调试功能。这使得器件和系统工程师可以在运行期间对代码中的错误进行修补从而免去了成本不菲的芯片重制过程。低延迟中断处理机制典型的MCU系统是中断强化的系统但他们并没有为了对这些中断进行独立的服务而奢侈地采用昂贵的和智能的外设。在这种情况下处理器本身得牺牲一定的性能来换取有效的中断响应和中断处理机制。CortexM内置的NVIC可实现硬件中断处理以及非常低的延迟这有利于把对处理器性能的影响降至最小。NVIC和处理内核的深度集成加快了中断服务程序(InterruptServiceRoutinesISR)的执行速度同时也减少了进入中断所需的周期数减幅达%。这一过程通过寄存器硬件压栈以及退出和重新开始多个loadstore指令的执行来完成。业内新的突破ARM架构成为位MCU的标准已是不争的事实它通常被称作下一代的。CortexM处理器凭借其卓越的性能和低廉的成本通常可以媲美高端的位MCU现在ARM白皮书第三章下一代MCU以位MCU的成本提供位的性能它的应用范围进一步扩大使更多用户升级到位系统成为现实。此外初始微控制器器件在CortexM处理器上整合了flash、SRAM和多个外设缔造了$的价格神话提供了无与伦比的竞争力。ARM白皮书第四章可靠安全的汽车和工业控制第章可靠安全的汽车和工业控制现今的汽车系统相当复杂一些高端的汽车含有的微控制器已达上百个之多。这些系统的应用范围覆盖了从高性能的巡航系统到成本敏感的电子车窗控制和油压传感器功能等众多领域。不言而喻如此复杂的可互操作系统需要极高的可靠性。而且在工业控制过程中同样还要考虑关键控制操作的安全问题。是否有一款处理器可以满足这些要求CortexM处理器就是答案。使用确定的中断处理来预测汽车的响应汽车系统是由中断驱动的这些中断包括刹车和急转弯等各种常规操作。对这类操作快速反应和预测有助于开启防抱死(ABS)系统和使用自动稳定控制技术从而达到安全行驶的目的。一般来说这些系统都非常复杂各种不同的子系统为汽车的安全行驶随时待命。NVIC的tailchaining(末尾连锁)技术支持背对背中断但有时优先级更高的中断有可能在当前中断的压栈或状态恢复阶段产生。在传统的基于ARM处理器的系统中这些阶段必须在开始处理未决的中断前完成。另一方面CortexM支持后来和占先机制因此对各种可能事件可提供确定性的响应。如果一个具有更高优先级的中断在上一个中断执行压栈期间到达那么NVIC马上获取一个新的向量地址来处理该未决的中断如图所示。图NVIC对迟来的具有更高优先级的中断做出的响应最高传统中断处理周期周期周期周期周期末尾连锁周期周期CortexM中断处理同样如果在压栈期间发生异常那么NVIC将丢弃压栈而马上处理新的中断。由于在转换到第二个中断前放弃了状态恢复以及保存阶段所以NVIC以确定性的方式实现了更低的延迟。图NVIC占先出栈传统中断处理CortexM中断处理最高取消弹出ARM白皮书第四章可靠安全的汽车和工业控制非屏蔽中断(NonMaskableInterruptNMI)的确定性可以通过把关键的中断资源设置为非屏蔽形式而进一步提高这在带有需要以特定的时间间隔进行可靠处理的看门狗定时器的系统中是一个非常重要的特性。使用精细的存储器保护来获得可靠的软件集成对基于汽车标准API的应用软件进行重复使用在下一代汽车系统中将成为必然的趋势。为了使产品更快地投入市场汽车系统的设计者希望从不同的供应商那里选择软件模型然后把这些模型重复应用到各种车辆。为此我们需要建立一个机制来使各个模块分隔开以便把干扰降至最小。CortexM处理器中的MPU提供可以细分到字节的区域实现了对单独任务的有效划分。如此一来系统就可以把很多不同的小软件程序进行分隔使它们避免保护机制的共享。加快位提取的速度来获得有效的IO数据处理汽车和工业应用的特点在于它们需要处理大量的通用IO数据。传感器接口或与其类似的外部器件对数据通常以位或位的形式读取然后在处理所读的数据后提取所需的数据位。这些处理过程一般通过微代码来完成所需时间为几个周期。此外ThumbUBFX(零扩展)和SBFX(符号扩展)位字段指令可以使位级的提取在一个周期内完成。图使用UBFX和SBFX指令进行位提取保护操作提供更安全的工业环境在受保护的环境中工业处理通常采用实时操作系统来执行控制。而且鉴于有多种不同的应用同时运行一个保护机制被建立用来划分应用的安全级别。为了安全操作MPU加强了优先权和访问规则。它在任务接任务(taskbytask)的基础上通过分离代码、数据和堆栈来实现安全的优先级同时通过控制存储地址的读、写和执行来实现访问的限制。它还可以通过检测堆栈破坏等未知的、有害的存储器访问事件和对这些问题进行安全和清洁的处理来避免灾难性的故障。ARM白皮书第五章针对无线网络实现了更低的功耗第章针对无线网络实现了更低的功耗在世界日趋紧密相连的今天无线网络无处不在。各种无线标准如WiFi、WiMAX、Bluetooth和Zigbee纷纷面世成为推动连接技术发展的新鲜血液先后实现了跨互联网连接技术以及以类似方式相连的器件之间的连接技术。这些技术之间的共同点无一例外就是对低功耗的需求日益增长。例如我们希望基于ZigBee的无线器件在使用一对AA电池供电的情况下可以维持工作超过年。时钟门控和内置睡眠模式可以降低功耗时钟门控技术用于关闭系统中的某些部分来有效地禁止它们。CortexM处理器广泛地使用这些门控时钟来禁止不用的功能和不用的功能模块的输入因此只有使用中的逻辑才会消耗动态电源。图深度睡眠模式下的电源控制除了在处理器的设计中广泛使用时钟门控技术外CortexM处理器还引入了一系列可以使处理器进入低功耗状态的睡眠模式实现了有效地对整个处理器(中断控制器除外)进行时钟门控。睡眠模式通过WFI(等待中断)和WFE(等待事件)指令执行。此外CortexM处理器使用SLEEPDEEP信号更大幅度地降低了系统级功耗。如果处于立即睡眠(Sleepnow)或退出时睡眠(Sleeponexit)模式该信号将在系统控制寄存器中的SLEEPDEEP位置位时发出。该信号发送到时钟管理器对处理器和包括锁相

用户评价(1)

  • wsx25 谢谢分享~

    2010-09-24 10:06:49

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/23

《ARM 白皮书—Cortex-M3 处理器简介》

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利