1、一、Cortex M3处理器的特点1.ARM处理器系列。2.CM3微控制器的特点。3.CM3微控制器的开发方法。1.ARM处理器系列ARM在1990年成立,当初的名字是“Advanced RISC Machines Ltd.,”ARM把处理器的设计授权给相关的商务合作伙伴,让他们去根据自己的强项设计具体的芯片。基于ARM低成本和高效的处理器设计方案,得到授权的厂商生产了多种多样的的处理器、单片机以及片上系统(SoC)。这种商业模式就是所谓的“知识产权授权”。ARMv7架构的闪亮登场。在这个版本中,内核架构首次从单一款式变成3种款式。款式A:设计用于高性能的“开放应用平台”越来越接近电脑了 款式
2、R:用于高端的嵌入式系统,尤其是那些带有实时要求的又要快又要实时。款式M:用于深度嵌入的,单片机风格的系统中。款式A(ARMv7-A):需要运行复杂应用程序的“应用处理器”。支持大型嵌入式操作系统,比如Symbian(诺基亚智能手机用),Linux,以及微软的Windows CE和智能手机操作系统Windows Mobile。这些应用需要劲爆的处理性能,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上会配有Java支持,有时还要求一个安全程序执行环境(用于电子商务译注)。典型的产品包括高端手机和手持仪器,电子钱包以及金融事务处理机。款式R(ARMv7-R):硬实时且高性能的处理器。标
3、的是高端实时注1市场。那些高级的玩意,像高档轿车的组件,大型发电机控制器,机器手臂控制器等,它们使用的处理器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。款式M(ARMv7-M):认准了旧世代单片机的应用而量身定制。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率,都是至关重要的。Cortex系列是v7架构的第一次亮相,其中Cortex-M3就是按款式M设计的。由于历史原因(从ARM7TDMI开始),ARM处理器一直支持两种形式上相对独立的指令集,它们分别是:32位的ARM指令集。对应处理器状态:ARM状态 16位的Thumb指令集。对应处理器状态:
4、Thumb状态 这两种指令集也对应了两种处理器执行状态。在程序的执行过程中,处理器可以动态地在两种执行状态之中切换。实际上,Thumb指令集在功能上是ARM指令集的一个子集,但它能带来更高的代码密度,给目标代码减肥。Thumb2指令集则是Thumb指令集的改进,具有更高的效率和更紧凑的尺寸。CM3处理器完全采用Thumb2指令集,更适合微控制器应用。高性能高代码密度小硅片面积,3璧合一,使得CM3大面积地成为理想的处理平台:低成本单片机:CM3与生俱来就适合做单片机,甚至简单到用于做玩具和小电器的单片机,都能使用CM3作为内核。这里本是8位机和16位机统治最牢固的腹地,但是CM3更便宜,更高性
5、能,更易使用,所以值得开发者们转到这个新生的ARM32位系统中来,哪怕花点时间重新学习。汽车电子:CM3也是汽车电子的好俅。CM3同时拥有非常高的性能和极低的中断延迟,打入实时领域的大门。CM3处理器能支持多达240个外部中断,内建了嵌套向量中断控制器,还可以选择配上一个存储器保护单元(MPU)。所有这些,使它用于高集成度低成本的汽车应用最合适不过了。数据通信:CM3的低成本高效率,再加上Thumb-2的强大位操作指令s,使CM3非常理想地适合于很多数据通信应用,尤其是无线数传和Ad-Hoc网络,如ZigBee和蓝牙等。工业控制:在工控场合,关键的要素在于简洁、快速响应以及可靠。再一次地,CM
6、3处理器的中断处理能力,低中断延迟,强化的故障处理能力(fault-handing,以后fault就不再译成中文了译注),足以让它能昂首挺胸地踏入这片热土。消费类产品:以往,在许多消费产品中,都必须使用一块甚至好几块高性能的微处理器。你别看CM3只是个小处理器,它的高性能和MPU机制可是足以让复杂的软件跑起来的,同时提供健壮的存储器保护。目前在市场上已经有了好多基于Cortex-M3内核的处理器产品,最便宜的还不到1美元,让ARM终于比很多8位机还便宜了。2.CM3微控制的特点Cortex-M3是一个32位处理器内核。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM3采
7、用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。操作模式和特权极别 Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。两种操作模式分别为:处理者模式(handler mode,以后不再把handler中译译注)和线程模式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码包括中断服务例程的代码。Cortex-M3的另一个侧面则是特权的分级特权级和用户级。这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。
8、处理器支持两种特权级,这也是一个基本的安全模型。内建的嵌套向量中断控制器 Cortex-M3在内核水平上搭载了一颗中断控制器嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controller)。NVIC提供如下的功能:可嵌套中断支持 向量中断支持 动态优先级调整支持 中断延迟大大缩短 中断可屏蔽 存储器映射 从图中可见,不像其它的ARM架构,它们的存储器映射由半导体厂家说了算,Cortex-M3预先定义好了“粗线条的”存储器映射。通过把片上外设的寄存器映射到外设区,就可以简单地以访问内存的方式来访问这些外设的寄存器,从而控制外设的工作。中断和异常 虽然CM3是
9、支持240个外中断的,但具体使用了多少个是由芯片生产商决定。CM3还有一个NMI(不可屏蔽中断)输入脚。当它被置为有效(assert)时,NMI服务例程会无条件地执行。低功耗与高能效首先,在节能模式上,它提供了睡眠模式和深度睡眠模式。芯片以及整个系统在设计时通过与内核的节能模式相呼应,就可以根据应用的要求,在空闲时降低功耗。第二,它精练的设计使得门数很低,并且在工作状态下电路的活动更少,所以CM3自己也是“身先士卒”地以身作则了。而且,由于CM3的程序代码密度高,程序容量也可以变得更少;同时,再加上它强大的性能减少了程序执行时间,使得系统能以最快的速度回到睡眠中,以削低对能源的用量。综上所述,
10、Cortex-M3的能效要高于大多的8位或16位单片机。复位序列 在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值:从地址0 x0000,0000处取出MSP的初始值。从地址0 x0000,0004处取出PC的初始值这个值是复位向量,LSB必须是1。然后从这个值所对应的地址处取指。3.CM3微控制器的开发方法选择一款Cortex-M3产品 对于大多数项目而言,单片机的功能和规格我们在选择时的首要考虑因素,例如:1.外设。对于大多数的项目,片载的外设是最重要的选择依据。外设也并非多多益善,因为它会影响到功耗和价格。2.存储器:CM3单片机的闪存可以少到几KB,多至几MB。此外,
11、片内RAM的容量也是很重要的。这些参数往往对价格有重大的冲击。3.时钟速度:CM3的设计可以在0.18um的粗线条工艺上,也轻松上到100MHz。然而,因为存储器访问速度的限制,芯片厂商会降低最大主频。4.脚印:CM3单片机的封装也多种多样。很多CM3单片机的脚数都比较少,以使之更适合于低成本的应用中。开发工具 在开始使用Cortex-M3之前,需要准备好一些开发工具,典型的如:编译器/汇编器:把C和汇编源程序转换成目标文件。几乎所有的C编译器套件都包含了对应的汇编器。指令系统模拟器:模拟指令的执行,用于在软件开发早期的调试。在线仿真器(ICE)或者调试探测器(probe):连接到电脑和目标板
12、上的调试硬件,与目标板的接口通常是JTAG或SW。一块开发板。跟踪捕捉仪:可选的硬件设备和周边软件,可以用它来捕捉来自DWT以及ITM的输出,并且以可读的形式显示出来。嵌入式操作系统:在单片机上运行的操作系统。这也是一个可选件,许多简单的应用程序不需要操作系统。但是在开发复杂度较高或者有高性能指标的系统时,常常需要使用。C编译器编译器 嵌入式操作系统支持 使用GNU工具链开始Cortex-M3开发 KEIL RealView Microcontroller Development Kit(RVMDK)RVMDK的前身就是曾一度在8051开发业界享有盛誉的KEIL套件。RVMDK包含了很丰盛的组件:uVision 集成开发环境 调试器 模拟器 由ARM提供的RealView工具链 C/C+编译器 汇编器 连接器 RTX实时内核 为各单片机而设的详细启动代码(包含源代码)各种Flash的编程算法 程序示例 在RVMDK中附带了很多示例程序,包括Luminary Micro的Stellaris系列的单片机产品,也包括了ST的STM32系列的单片机产品。这些示例都使用了厂家提供的驱动程序库(固件库)。使用固件库可以免去写代码操作外设寄存器的任务。很容易通过修改示例程序来开发自己的应用程序,也可以自己从头设计工程,再摘抄一部分示例程序的代码。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。