资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
选择选择 ARMARM 处理器处理器,ARM7,ARM7 还是还是 Cortex-M3Cortex-M3?选择 ARM 处理器,ARM7 还是 Cortex-M3? 要使用低成本的 32 位处理器,开发人员面临两种选择,基于Cortex-M3 内核或者 ARM7TDMI 内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了 ARM Cortex-M3 内核微控制器区别于 ARM7 的一些特点,帮助您快速选择。1ARM 实现方法ARM Cortex-M3 是一种基于 ARM7v 架构的最新 ARM 嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线( 冯诺伊曼结构下,数据和指令共用一条总线 ) 。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。ARM 公司对 Cortex-M3 的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。在成本和功耗方面,Cortex-M3 具有相当好的性能,ARM 公司认为它特别适用于汽车和无线通信领域。和所有的 ARM 内核一样,ARM 公司将内该设计授权给各个制造商来开发具体的芯片。迄今为止,已经有多家芯片制造商开始生产基于 Cortex-M3 内核的微控制器。ARM7TDMI(包括 ARM7TDMIS)系列的 ARM 内核也是面向同一类市场的。这类内核已经存在了十多年之久,并推动了 ARM 成为处理器内核领域的主导者。众多的制造商(据 ARM 宣称,多达 16 家)出售基于 ARM7 系列的处理器以及其他配套的系统软件、开发和调试工具。在许多方面,ARM7TDMI 都可以称得上是嵌入式领域的实干家。2两者差异除了使用哈佛结构, Cortex-M3 还具有其他显著的优点:具有更小的基础内核,价格更低,速度更快。与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。 Cortex-M3 还集成了睡眠模式和可选的完整的八区域存储器保护单元。它采用 THUMB-2 指令集,最大限度降低了汇编器使用率。3指令集 ARM7 可以使用 ARM 和 Thumb 两种指令集,而 Cortex-M3 只支持最新的 Thumb-2 指令集。这样设计的优势在于: ? 免去 Thumb 和 ARM 代码的互相切换,对于早期的处理器来说,这种状态切换会降低性能。 ? Thumb-2 指令集的设计是专门面向 C 语言的,且包括 If/Then 结构(预测接下来的四条语句的条件执行) 、硬件除法以及本地位域操作。 ? Thumb-2 指令集允许用户在 C 代码层面维护和修改应用程序,C代码部分非常易于重用。 ? Thumb-2 指令集也包含了调用汇编代码的功能:Luminary 公司认为没有必要使用任何汇编语言。 ? 综合以上这些优势,新产品的开发将更易于实现,上市时间也大为缩短。4中断Cortex-M3 的另一个创新在于 嵌套向量中断控制器 NVIC( Nested Vector Interrupt Controller) 。相对于 ARM7 使用的外部中断控制器,Cortex-M3 内核中集成了中断控制器,芯片制造厂商可以对其进行配置,提供基本的 32 个物理中断,具有 8 层优先级,最高可达到 240 个物理中断和 256 个中断优先级。此类设计是确定的且具有低延迟性,特别适用于汽车应用。NVIC 使用的是基于堆栈的异常模型。在处理中断时,将程序计数器,程序状态寄存器,链接寄存器和通用寄存器压入堆栈,中断处理完成后,在恢复这些寄存器。堆栈处理是由硬件完成的,无需用汇编语言创建中断服务程序的堆栈操作。中断嵌套是可以是实现的。中断可以改为使用比之前服务程序更高的优先级,而且可以在运行时改变优先级状态。使用末尾连锁( tail-chaining )连续中断技术只需消耗三个时钟周期,相比于 32个时钟周期的连续压、出堆栈,大大降低了延迟,提高了性能。如果在更高优先级的中断到来之前, NVIC 已经压堆栈了,那就只需要获取一个新的向量地址,就可以为更高优先级的中断服务了。同样的,NVIC 不会用出堆栈的操作来服务新的中断。这种做法是完全确定的且具有低延迟性。5睡眠Cortex-M3 的电源管理方案通过 NVIC 支持 Sleep Now, Sleep on Exit (退出最低优先级的 ISR) and SLEEPDEEP modes 这三种睡眠模式。为了产生定期的中断时间间隔, NVIC 还集成了系统节拍计时器,这个计时器也可以作为 RTOS 和调度任务的心跳。这种做法与先前的ARM 架构的不同之处就在于不需要外部时钟。6存储器保护单元存储器保护单元是一个可选组建。选用了这个选项,内存区域就可以与应用程序特定进程按照其他进程所定义的规则联系在一起。例如,一些内存可以完全被其他进程阻止,而另外一部分内存能对某些进程表现为只读。还可以禁止进程进入存储器区域。可靠性,特别是实时性因此得到重大改进。7调试对 Cortex-M3 处理器系统进行调试和追踪是通过调试访问端口( Debug Access Port )来实现的。调试访问端口可以是一个 2 针的串行调试端口( Serial Wire Debug Port )或者串行 JTAG 调试端口( Serial Wire JTAG Debug Port ) 。通过 Flash 片、断点单元、数据观察点、跟踪单元,以及可选的嵌入式跟踪宏单元( Embedded Trace Macrocell )和指令跟踪宏单元( Instrumentation Trace Macrocell )等一系列功能相结合,在内核部分就可以采用多种类型的调试方法及监控函数。例如,可以设置断点、观察点、定义缺省条件或执行调试请求、监控停止操作或继续操作。所有的这些功能在 ARM 架构的产品中已经实现,只是 Cortex-M3 将这些功能整合起来,方便开发人员使用。8应用范围虽然 ARM7 内核并没有像 Cortex 系列那样集成很多外设,但是大量的基于 ARM7 的器件,从通用 MCU,到面向应用的 MCU、SOC 甚至是Actel 公司基于 ARM7 内核的 FPGA,都拥有更为众多的外围设备。大约有 150 种 MCU 是基于 ARM7 内核的(根据不同的统计方法,这个数字可能会更高) 。 你会发现 ARM7 都可以实现几乎所有的嵌入式应用,或采用定制的方式来满足需求。基于标准内核,芯片厂商可以加入不同类型、大小的存储器和其他外围设备,比如串行接口、总线控制器、存储器控制器和图形单元,并针对工业、汽车或者其他要求苛刻的领域,使用不同的芯片封装,提供不同温度范围的芯片版本。芯片厂商也可能绑定特定的软件,比如 TCP/IP 协议栈或面向特定应用的软件。例如, STMicroelectronics 公司的 STR7 产品线有三个主要系列共45 个成员,具有不同的封装和存储器。每一个系列都针对特定的应用领域,具有不同外设集合。比如 STR730 家族是专为工业和汽车应用设计的,因此具有可扩展的温度范围,包括多个 I/O 口和 3 个CAN 总线接口。STR710 则是面向于消费市场以及高端的工业应用,它具有多个通信接口,比如 USB, CAN, ISO7816 以及 4 个 UART,还有大容量的存储器和一个外部存储器接口。芯片厂商也可以选择利于开发人员开发产品的措施,比如采用 ARM的 嵌入式跟踪宏单元 ETM( Embedded Trace Macrocell ) ,并提供开发和调试工具。 截止至这篇文章写作之时, Luminary、STMicroelectronics 这两家公司已经有基于 Cortex-M3 的芯片,其他公司如 NXP、Atmel 也宣布生产该类产品。 9配套工具 ARM7 应用已经非常普及,它已经有非常多第三方的开发和调试工具支持。在 ARM 的网站上有超过 130 家工具公司名称列表。 大多数厂商提供了基本的开发板,并提供下载程序的接口、调试工具以及外部设备的驱动,包括 LED 灯的显示状态或者屏幕上的单行显示。通常,开发套件包括编译器、一些调试软件以及开发板。更为高级的套件包括第三方的集成开发环境(IDE) ,IDE 中包含编译器、链接器、调试器、编辑器和其他工具,也可能包括仿真硬件,比如说 JTAG 仿真器。 内电路仿真器( ICE)是最早的也是最有用的调试工具形式之一,很多厂商都在 ARM7 上提供了这一接口。 软件开发工具范围很广:从建模到可视化设计,到编译器。现在很多的产品也用到实时操作系统( RTOS)和中间件,以加速开发进程、降低开发难度。 另外,还有一个非常重要的因素,很多的开发人员对 ARM7 的开发经验非常丰富。 虽然现在已经有新兴的 Cortex-M3 工具,但显然还是有一定的差距。不过, Cortex-M3 的集成调试性能使调试变得简单且有效,且无需用到内电路仿真器 ICE。 10决策 那么,你应该如何做出何种选择呢?如果成本是最主要考虑因素,您应该选择 Cortex-M3;如果在低成本的情况下寻求更好的性能和改进功耗,您最好考虑选用 Cortex-M3;特别是如果你的应用是汽车和无线领域,最好也采用 Cortex-M3,这正是 Coretex-M3 的主要定位市场。 由于 Cortex-M3 内核中的多种集成元素以及采用 Thumb-2 指令集,其开发和调试比 ARM7TDMI 要简单快捷。 然而,由于重定义 ARM7TDMI 的应用不是一件困难的事,特别是在使用了 RTOS 的情况下。保守者可能会沿用 ARM7TDMI 内核的芯片,并避免使用那些会使重定义变得复杂的功能。 11IAR YellowSuite for ARM IAR YellowSuite for ARM 是一整套支持 ARM 的开发工具整体解决方案,包括:visualSTATE 状态机建模工具、IAR Embedded Workbench 集成开发环境、PowerPac RTOS 和中间件、仿真器等。不管选用 ARM7 还是 Cortex-M3,IAR 的开发工具都能支持。visualSTATE 状态机建模工具visualSTATE 是一套精致、易用的开发工具, 包含图形设计器、测试工具包,代码生成器和文档生成器, 用于设计、测试和实现基于状态图设计的嵌入式应用。 ? 基于统一建模语言 (UML)状态机理论的图形化模型设计; ? 对设计模型进行规范性验证,检查系统的逻辑一致性,鉴别出系统设计漏洞或错误; ? 设计过程的早期阶段,甚至在硬件设计尚未完成之前,就可以使用测试工具来确保应用能按照预想方式运行; ? 自动代码生成功能可以生成极为紧凑的 C/C+代码,100%与设计保持一致; ? 自动文档生成功能提供了详尽的信息; ? 与 IAR Embedded Workbench 无缝集成,提供多种微控制器和评估板的现成示例代码; ? 通过 CSPYLink 或 RealLink 对目标器件进行综合的图形化状态机调试; ? 支持多种硬件调试接口,例如 J-Link、通用 JTAG 仿真器、NEXUS 仿真器等 IAR Embedded Workbench for ARM 集成开发环境 IAR Embedded Workbench for ARM 集成开发环境(简称 EWARM) 是一套支持 ARM 所有处理器的集成开发环境,包含项目管理器、编辑器、C/C+ 编译器 、汇编器、连接器和调试器。 IAR Embedded Workbench for ARM 集成开发环境支持所有的 ARM 内核,并提供大多数芯片外设计的支持: ARM7 (ARM7TDMI, ARM7TDMI-S, ARM720T) ARM9 (ARM9TDMI, ARM920T, ARM922T, ARM940T) AR
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号