cortexm3内核与arm7tdmi区别
ARMCortex各系列处理器分类比较
Cortex-M系列M0:Cortex-M0是目前最小的ARM处理器,该处理器的芯片面积非常小,能耗极低,且编程所需的代码占用量很少,这就使得开发人员可以直接跳过16位系统,以接近8 位系统的成本开销获取32 位系统的性能。
Cortex-M0 处理器超低的门数开销,使得它可以用在仿真和数模混合设备中。
M0+:以Cortex-M0 处理器为基础,保留了全部指令集和数据兼容性,同时进一步降低了能耗,提高了性能。
2级流水线,性能效率可达1.08 DMIPS/MHz。
M1:第一个专为FPGA 中的实现设计的ARM 处理器。
Cortex-M1 处理器面向所有主要FPGA 设备并包括对领先的FPGA 综合工具的支持,允许设计者为每个项目选择最佳实现。
M3:适用于具有较高确定性的实时应用,它经过专门开发,可使合作伙伴针对广泛的设备(包括微控制器、汽车车身系统、工业控制系统以及无线网络和传感器)开发高性能低成本平台。
此处理器具有出色的计算性能以及对事件的优异系统响应能力,同时可应实际中对低动态和静态功率需求的挑战。
M4:由ARM 专门开发的最新嵌入式处理器,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。
M7:在ARM Cortex-M 处理器系列中,Cortex-M7 的性能最为出色。
它拥有六级超标量流水线、灵活的系统和存接口(包括AXI 和AHB)、缓存(Cache)以及高度耦合存(TCM),为MCU 提供出色的整数、浮点和DSP 性能。
互联:64位AMBA4 AXI, AHB外设端口(64MB 到512MB)指令缓存:0 到64kB,双路组相联,带有可选ECC数据缓存:0 到64kB,四路组相联,带有可选ECC指令TCM:0 到16MB,带有可选ECC数据TCM:0 到16MB,带有可选ECCCortex-M系列规格对比Cortex-A系列:ARM Cortex-A 系列是一系列用于复杂操作系统和用户应用程序的应用程序处理器。
STM32介绍以及与通常ARM的区别
STM32介绍以及与通常ARM的区别STM32介绍以及与通常ARM的区别ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核----ARM 系列,最常用的是ARM7和ARM9,ARM公司主要提供IP(Intellectual Property core 知识产权的核心)核,就是CPU 的内核结构,只包括最核心的部分,并不是完整的处理器。
ARM把这个核卖给各大半导体公司,如 Philips 三星,ATMEL,甚至Intel等许多公司。
ARM为了对付8位机市场,最近推出了Cortex-M3核,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器, Cortex_M3核性价比更高,价格低,可以与8位单片机竞争。
一、ARM Cortex-M3 处理器初探单片机市场的规模可以用“巨无霸”来形容,预计到2010时每年能有20G 片的出货量。
世界各地的器件供应商纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。
业界内部可谓是百花齐放,热闹非凡,好戏不断。
各行各业对单片机能力的要求也一直“得寸进尺”,而且还又要马儿跑,又要马儿不吃草——处理器必须在不怎么增加主频和功耗的条件下干更多的活儿。
另一方面,处理器之间的互连也在加深,看这一串串熟悉的字眼:串口,USB,以太网,无线数传……处理器如欲支持这些数据通道,就必须在片上塞进更多的外设。
软件方面的情况也如出一辙:应用程序的功能一直在花样翻新,性能需求也是变本加厉:更高的运算速度,更硬的实时能力,更多的功能模块,更炫的图形界面,……所有这些要求单片机都得照单全收。
在这个大环境下,ARM Cortex‐M3处理器,作为Cortex系列的处女作,为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术,它的门数更低,性能却更强。
许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在CM3上跑得很快很欢。
浅谈ARM Cortex系列处理器之区别
浅谈ARM Cortex系列处理器之区别市面上ARM Cortex系列包括3个系列,包括ARM Cortex-A, ARM Cortex-R, ARM Cortex-M,Z这三种系列,并且每个系列又分多种子版本,每个子版本都有各自的特点。
很好的为设计人员提供非常广泛的具有可扩展性的性能选项,从而有机会在多种选项中选择最适合自身应用的内核,而非千篇一律的采用同一方案。
其中,1,Cortex-A—面向性能密集型系统的应用处理器内核2, Cortex-R—面向实时应用的高性能内核3, Cortex-M—面向各类嵌入式应用的微控制器内核Cortex-A处理器为利用操作系统(例如Linux或者Android ,IOS)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。
早期的Cortex-A系列处理器(A5、A7、A8、A9、A12、A15和A17)基于ARMv7-A架构。
每种内核都共享相同的功能集,例如NEON媒体处理引擎、Trustzone安全扩展、单精度和双精度浮点支持、以及对多种指令集(ARM、Thumb-2、Thumb、Jazelle 和DSP)的支持。
与此同时,这些处理器也具有极高的设计灵活性,能够提供所需的最佳性能和预期的功效。
介绍过Cortex-A,下面介绍Cortex-R系列——衍生产品中体积最小的ARM处理器,这一点也最不为人所知。
Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
Cortex-R系列在某些方面与高端微控制器(MCU)类似,但是,针对的是比通常使用标准MCU的系统还要大型的系统。
例如,Cortex-R4就非常适合汽车应用。
Cortex-R4主频可以高达600MHz(具有2.45DMIPS/MHz),配有8级流水线,具有双发送、预取和分支预测功能、以及低延迟中断系统,可以中断多周期操作而快速进入中断服务程序。
ARM Cortex-M3处理器简介
ARM 白皮书
——ARM Cortex-M3 处理器简介 Shyam Sadasivan October 2006
广州周立功单片机发展有限公司 地址:广州市天河北路 689 号光大银行大厦 15 楼 F1
ARM 白皮书
目录
目录
第 1 章 简介 ....................................................................................................................................1 1.1 通过提高效率来提高性能................................................................................................1 1.2 快速有效的应用程序开发源于简易的使用方法 ............................................................1 1.3 针对敏感市场降低成本和功耗........................................................................................1 1.4 集成的调试和跟踪功能推进上市的步伐........................................................................2 1.5 从ARM7TM升级为Cortex-M3 可获取更佳的性能和功效 ..............................................2
第 5 章 针对无线网络实现了更低的功耗...................................................................................15 5.1 时钟门控和内置睡眠模式可以降低功耗......................................................................15 5.2 通过灵活的工作方式来增加处于睡眠模式的时间 ......................................................15 5.3 真正实现省电..................................................................................................................16
ARM-contx系列
要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI 内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法 ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线;ARM7是冯诺伊曼结构冯诺伊曼结构下,数据和指令共用一条总线。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
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指令集。
ARM7 与 Cortex-M3的性能比较
【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
ARM Cortex-M3处理器简介 读后感
读后感:ARM Cortex-M3处理器简介ARM, 读后感, 处理器, 简介首先谈谈我对这个系列先入为主的感觉。
Cortex-M3是ARM7的升级版本。
个人认为:ARM7本身并不是完全针对MCU来设计的,但是众多芯片厂家以ARM7为内核做了很多32位MCU芯片。
例如Atmel和NXP的ARM7系列。
Cortex-M3是真正针对MCU应用来设计的,这一点在功能取舍和性能偏向上得到反映。
那么与ARM7相比较,Cortex-M3有哪些区别和特点呢?加速设计:哈佛结构替代ARM7的冯.诺伊曼结构。
哈佛结构就是指令和数据总线分开。
这样取指令和取数据可以同时进行。
很适合将指令放在片内FLASH,将数据放在片内SRAM的MCU结构。
在ARM7的3级流水线之上增加了分支预测。
减少了程序跳转时流水线被打断的时间消耗。
ALU支持硬件乘法和硬件除法。
数学计算能力增强。
单周期32位乘法。
Bit-Band技术:简单地说,就是增强了位操作性能。
SRAM中有专门的Bit-Band区域,可以按位进行寻址(使用别名地址)。
而且,这样的位操作是原子操作。
这在实现互斥功能时有用。
一些DSP运算专用的位操作指令,比如bit翻转。
节省存储器使用量的技术:位寻址是可以节省bool型变量的存储器使用的。
ARM7的short变量要16位对齐、int变量要32位对齐。
Cortex-M3不用对齐。
这个问题,一般看法是,对齐可以简化设计。
个人认为这个好处有限。
指令集的优化。
现在叫Thumb-2了。
ARM7有两种指令集:ARM和Thumb,两种指令模式可以切换。
个人感觉比较怪。
处理器模式的简化:我们知道ARM7有很多种处理器模式,目的主要应该是支持复杂的操作系统。
Cortex-M3的处理器模式现在有两个:Thread模式和handler模式。
Thread模式相当于用户模式了,有两种访问方式:有特权方式和无特权方式。
结构区别:ARM7是个纯内核,中断控制器和存储器接口是芯片厂家扩展的。
ARMCortex
ARMCortex1. 三级流水线+分支预测ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。
流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。
特别是现代C 语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。
为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
2. 哈佛结构从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。
冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。
这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。
但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。
ARM7TDMI内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。
ARMCortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都采用了哈佛结构。
3. 内置嵌套向量中断控制器(NVIC)针对业界对ARM处理器中断响应的问题,Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。
ARM7 与 Cortex-M3的性能比较
【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
CortexM3微控制器概述
基于ARM低成本和高效的处理器设计方案,得到 授权的厂商生产了多种多样的的处理器、单片机以及 片上系统(SoC)。这种商业模式就是所谓的“知识产权授 权”。
ARMv7架构的闪亮登场。在这个版本中,内核架构首次 从单一款式变成3种款式。
款式A:设计用于高性能的“开放应用平台”——越来越 接近电脑了
内建的嵌套向量中断控制器
Cortex-M3在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器 NVIC(Nested Vectored Interrupt Controller)。
NVIC提供如下的功能: • 可嵌套中断支持 • 向量中断支持 • 动态优先级调整支持 • 中断延迟大大缩短 • 中断可屏蔽
存储器映射
从图中可见,不像其它的ARM架构,它们的存储器映 射由半导体厂家说了算, Cortex-M3预先定义好了“粗线条 的”存储器映射。通过把片上外设的寄存器映射到外设区, 就可以简单地以访问内存的方式来访问这些外设的寄存器, 从而控制外设的工作。
中断和异常
虽然CM3是支持240个外中断的,但具体使用了多少 个是由芯片生产商决定。 CM3还有一个NБайду номын сангаасI (不可屏蔽 中断)输入脚。当它被置为有效(assert)时, NMI服务 例程会无条件地执行。
开发工具
在开始使用Cortex-M3之前,需要准备好一些开发工具,典型的如: • 编译器/汇编器:把C和汇编源程序转换成目标文件。几乎所有的C编译器套件 都包含了对应的汇编器。 • 指令系统模拟器:模拟指令的执行,用于在软件开发早期的调试。 • 在 线 仿 真 器 ( ICE) 或 者 调 试 探 测 器 ( probe) : 连 接 到 电 脑 和 目 标 板 上 的 调 试 硬 件 , 与 目 标 板 的 接 口 通 常 是 JTAG或 SW。 • 一块开发板。 • 跟踪捕捉仪:可选的硬件设备和周边软件,可以用它来捕捉来自DWT以及ITM 的输出,并且以可读的形式显示出来。 • 嵌入式操作系统:在单片机上运行的操作系统。这也是一个可选件,许多简单 的应用程序不需要操作系统。但是在开发复杂度较高或者有高性能指标的系统时, 常常需要使用。
2019转 选择ARM处理器的ARM7还是Cortex M3.doc
转选择ARM处理器的ARM7还是Cortex M31.1 ARM处理器系列每个ARM处理器都有一个特定的指令集架构(ISA),而一个ISA版本又可以有多种处理器实现。
ISA随着嵌入式市场的需求而发展,至今已经有多个版本。
ARM公司规划该发展过程,使得在较早的架构版本上编写的代码也可以在后继版本上执行(即代码的兼容性)。
1.1.1命名规则早期ARM使用如图1.1所示的命名规则来描述一个处理器。
在"ARM"后的字母和数字表明了一个处理器的功能特性。
随着更多特性的增加,字母和数字的组合可能会改变。
注意:命名规则不包含体系结构(ISA)的版本信息。
ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}x--系列y--存储管理/保护单元z--cache T--Thumb 16位译码器D--JTAG调试器M--快速乘法器I--嵌入式跟踪宏单元E--增强指令(基于TDMI)J--Jazelle F--向量浮点单元S--可综合版本图1.1早期ARM命名规则关于ARM命名法则,还有一些附加的要点:?ARM7TDMI之后的所有ARM内核,即使"ARM"标志后没有包含那些字符,也都包括了TDMI功能特性。
?处理器系列是共享相同硬件特性的一组处理器具体实现。
例如,ARM7TDMI、ARM740T和ARM720T都共享相同的系列特性,都属于ARM7系列。
?JTAG是由IEEE 1149.1标准测试访问端口(Standard Test Access Port)和边界扫描结构来描述的。
它是ARM用来发送和接收处理器内核与测试仪器之间调试信息的一系列协议。
?嵌入式ICE宏单元(EmbeddedICE macrocell)是建立在处理器内部用来设置断点和观察点的调试硬件。
?可综合的--意味着处理器内核是以源代码形式提供的,这种源代码形式又可以被编译成一种易于EDA工具使用的形式。
Cortex-M3的优势
ARM Cortex-M3相比于ARM其他系列微控制器,具有以下优势或特点:1. 三级流水线+分支预测ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。
流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。
特别是现代C语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。
为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
2. 哈佛结构从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。
冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。
这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。
但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。
ARM7TDMI内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。
ARMCortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都采用了哈佛结构。
ARM_CortexM3内核结构
ARM Cortex-M3 内核结构2.1ARM Cortex-M3 处理器简介2、1、1 概述ARM公司成立于上个世纪九十年代初,致力于处理器内核研究,ARM 即 Advanced RISC Machines 的缩写,ARM公司本身不生产芯片,只设计内核,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
这种运行模式运营的成果受到全球半导公司以及用户的青睐。
目前ARM体系结构的处理器内核有:ARM7TDMI、ARM9TDMI、ARM10TDMI、ARM11以及Cortex等。
2005年ARM推出的ARM Cortex系列内核,分别为:A系列、R系列与M系列,其中A系列就是针对可以运行复杂操作系统(Linux、Windows CE、Symbian 等)的处理器;R系列就是主要针对处理实时性要求较高的处理器(汽车电子、网络、影像系统);M系列又叫微控制器,对开发费用敏感,对性能要求较高的场合。
Cortex-M系列目前的产品有M0、M1、M3,其中M1用在FPGA中。
Cortex-M系列对微控制器与低成本应用提供优化,具有低成本、低功耗与高性能的特点,能够满足微控制器设计师进行创新设计的需求。
其中,ARM Cortex-M3处理器的性能就是ARM7的两倍,而功耗却只有ARM7的1/3,适用于众多高性能、极其低成本需求的嵌入式应用,如微控制器、汽车系统、大型家用电器、网络装置等,ARM Cortex-M3提供了32位微控制器市场前所未有的优势。
Cortex-M3内核,内部的数据路径为32位,寄存器为32位,存储器接口也就是32位。
Cortex-M3采用了哈佛结构,拥有独立的指令总线与数据总线,可以让取指与数据访问分开进行。
Cortex-M3还提供一个可选的MPU,对存储器进行保护,而且在需要的情况下也可以使用外部的cache。
另外在Cortex-M3中, 存储器支持小端模式与大端存储格式。
Cortex-M3内部还附赠了很多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。
arm内核系列比较.
arm内核系列比较ARM2009-06-1421:38:37阅读345评论0字号:大中小器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。
ARM处理器是最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。
而且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。
从图2给出了常见的ARM处理器的架构和支持的操作系统。
目前在业内广为人知的ARM处理器主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必要了解一下最新的ARM11和ARM Cotex系列处理器。
图2ARM体系结构ARM7系列ARM7TDMI是ARM7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb指令集和EmbeddedICE观察点硬件。
ARM7TDMI属于ARM v4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz性能。
不过ARM7TDMI没有MMU(Memory Management Unit和Cache,所以仅支持那些不需要MMU和Cahce的小型实时操作系统,如VxWorks、uC/OS-II和uLinux等RTOS。
其他的ARM7系列内核还有ARM720T和ARM7E-S等。
ARM9系列ARM9TDMI相比ARM7TDMI,将流水级数提高到5级从而增加了处理器的时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能,平均可达1.1DMIPs/Mhz,但是ARM9TDMI仍属于ARM v4T体系结构。
在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T增加了MPU(Memory Protect Unit和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9(方便进行CPU实时trace,从而更好的支持象Linux和WinCE这样的多线程、多任务操作系统。
Linux芯片总结
基于Cortex-M3内核的STM32嵌入式处理器的学习报告一、Cortex-M3内核概述:Cortex‐M3是一个32位处理器内核,它内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。
CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。
Cortex-M3采用ARMv7-M构架,不仅支持Thumb-2指令集,而且拥有很多新特性。
较之ARM7-TDMI,Cortex-M3 拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。
CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的cache;另外在CM3中,Both小端模式和大端模式都是支持的。
CM3内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。
另外,它为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。
二、Cortex-M3内核配置ARMCortex-M3采用哈佛结构,并选择了适合于微控制器应用的三级流水线,但增加了分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
针对业界对ARM处理器中断响应的问题,Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。
Cortex-M3的中断延迟只有12个时钟周期(ARM7需要24-42个周期);Cortex-M3还使用尾链技术,使得背靠背中断的响应只需要6个时钟周期(ARM7需要大于30个周期)。
Cortex-M3采用了基于栈的异常模式,使得芯片初始化的封装更为简单。
Cortex-M3加入了类似于8位处理器的内核低功耗模式,支持3种功耗管理模式:通过一条指令立即睡眠、异常/中断退出时睡眠和深度睡眠,使整个芯片的功耗控制更为有效。
CM3 拥有通用寄存器R0‐R15以及一些特殊功能寄存器。
R0‐R12是最通用的,但是绝大多数的16位指令只能使用R0‐R7(低组寄存器),而32位的 Thumb ‐2指令则可以访问所有通用寄存器,特殊功能寄存器有预定义的功能,而且必须通过专用的指令来访问。
微处理器8CortexM3微处理器
Cortex-M3内核概述
三级流水线结构的指令执行顺序
…… 指令1 指令2 指令3 指令4 ……
程序存储器
周期1 周期2
取指 译码
周期3
执行
周期4 周期5 周期6
处理器执行一条指 令的三个阶段
取指 译码 执行
取指 译码 执行
取指 译码 执行
4 在第4个周期,指令1执行完成,指令2和指令 3流水线推进一级,同时开始指令4的取指处理。
与ARM7TDMI相比, 比Thumb指令每兆赫的 效率提高70%,比ARM 指令提高35%
Cortex-M3内核概述
优化指令系统
120
100
80
60
40
Thumb-2
20
ARM
Thumb
0
相关测试的代码大小
由 于 Tumb-2 指 令 是 Thumb 指 令 的 扩 展 , 16位和32位指令共存于 同一模式下,复杂性大 幅下降,代码密度和性 能均得到提高。
Cortex-M3的内部寄存器
特殊功能寄存器
异常屏蔽寄存器( FAULTMASK )
异常屏蔽寄存器(只有1位)
FAULTMASK 1
除NMI外所有异常 被屏蔽
0
异常能正常响应
相当于异常总开关, 为1,除NMI外所有异常被屏蔽; 为0,异常能正常响应。
Cortex-M3的内部寄存器
特殊功能寄存器
BASEPRI 定义屏蔽优先级的阀值
0.95 DMIPS/MHz
0.28 mW/MHz 0.62 mm2(仅内核)
Cortex-M3 ARMv7-M(哈佛)
Thumb/Thumb-2 3级+分支预测 240个物理中断 12个时钟 (末尾连锁仅6个) 内置 8段存储器保护单元 2—12个时钟周期
Cortex-M3 VS ARM7
ARM7与Cortex-M3比较要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI 内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。
在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。
和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。
迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。
这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。
众多的制造商出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。
在许多方面,ARM7TDMI都可以称得上是嵌入式领域的实干家。
2.两者差异除了使用哈佛结构,Cortex-M3还具有其它显著的优点:具有更小的基础内核,价格更低,速度更快。
与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。
Cortex-M3还集成了睡眠模式和可选的完整的八区域存储器保护单元。
它采用THUMB-2指令集,最大限度降低了汇编器使用率。
3.指令集ARM7可以使用ARM和Thumb两种指令集,而Cortex-M3只支持最新的Thumb-2指令集。
ARM Cortex-M3处理器内核
• 6 嵌套向量中断控制器(NVIC) 嵌套向量中断控制器( ) – 嵌套向量中断控制器(NVIC):
• 提供低-等待延时异常和中断处理 • 控制电源管理 • 执行系统控制寄存器
– NVIC支持多达240个可动态配置优先级的中断,每个中 断具有多达256个优先级。NVIC和处理器内核接口紧密 耦合,这使能了低等待延时中断的处理和迟到达中断的 有效处理。 NVIC保留了堆栈(嵌套)中断的内容来使能 中断的尾部链接。 – 你只可以完全访问特权模式的NVIC,但如果你使能配置 控制寄存器,你就可以在用户模式中挂起中断。任何其 它的用户模式访问都会引起总线错误。 – 所有NVIC寄存器可使用字节、半字和字来访问,除非特 别说明。 – 所有NVIC寄存器和系统调试寄存器都是小端配置,不管 处理器的端点状态如何。
• 跟踪端口接口单元(TPIU ) 跟踪端口接口单元(
– ITM, DWT 和ETM 的跟踪数据都在TPIU 处汇聚。TPIU 用于把这 些跟踪数据格式化并输出到片外,以供跟踪端口分析仪之类的设 备接收使用。
功能描述
• 1 串行线和 串行线和JTAG调试 调试 – Luminary Micro使用与ARM CoreSight™ 兼容的串行线 JTAG调试端口(SWJ-DP)接口来替代 ARM SW-DP 和JTAG-DP。 – SWJ-DP接口将SWD和JTAG调试端口组合到一个模块 SWJ-DP SWD JTAG 中。 • 2 嵌入式跟踪宏单元 (ETM) ) – ETM没有在 Stellaris®器件中执行。
• 中断
– 软件可在7个异常(系统处理程序)以及40个中断上设 置8个优先级。 – 把优先级划分为占先优先级和次要优先级两组(抢占 式优先级和响应优先级 )。每个中断源都需要被指定 这两种优先级,就需要有相应的寄存器位记录每个中 断的优先级;在Cortex-M3中定义了8个比特位用于设 置中断源的优先级 。
第1章 ARM与Cortex-M3-0
第1章ARM与Cortex-M3/M01.1 ARM Cortex-M3/M0处理器初探单片机市场的规模与日俱增,,世界各地的半导体公司纷纷亮出自己的得意之作,他们提供的器件和架构也是各具特色。
业界内部可谓是百花齐放,热闹非凡,好戏不断。
各行各业对单片机能力的要求也越来越苛刻——处理器必须在不怎么增加主频和功耗的条件下干更多的活儿。
另一方面,处理器之间如欲支持SPI,I2C,USB,以太网,CAN,Zigbee传等通信,就必须在片上塞进更多的外设。
软件方面的要求也越来越高——更高的运算速度,严格的实时响应,更多的功能模块,更炫的图形界面,……所有这些要求单片机都得照单全收。
在这个大环境下,ARM Cortex-M3/M0处理器为了让32位处理器入主作庄单片机市场,轰轰烈烈地诞生了!由于采用了最新的设计技术,它的门数更低,性能却更强。
许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在Cortex-M3上快速,嵌入式处理器市场正在32位化。
比当年8051推动整个业界还有过之而无不及,再次放飞工程师们的梦想,让深埋于心底多年的夙愿梦想成真!Cortex-M3/M0的招牌功夫包括:•性能强劲。
在相同的主频下能做处理更多的任务,全力支持劲爆的程序设计。
•功耗低。
延长了电池的寿命这简直就是便携式设备的命门(如无线网络应用)。
•实时性好。
采用了很前卫甚至革命性的设计理念,使它能极速地响应中断,而且响应中断所需的周期数是确定的。
•代码密度得到很大改善。
一方面力挺大型应用程序,另一方面为低成本设计而省吃俭用。
•使用更方便。
现在从8位/16位处理器转到32位处理器之风刮得越来越猛,更简单的编程模型和更透彻的调试系统,为与时俱进的人们大大减负。
•低成本的整体解决方案。
让32位系统比和8位/16位的还便宜,低端的Cortex-M3/M0单片机甚至还卖不到1美元。
降低成本还有一招,就是使基础代码在所有系统中都可以重用,至少要方便移植。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
低成本ARM 32位MCU,开发人员面临的两种选择要使用低成本的 32位微控制器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM V7架构的最新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 InterruptController)。
相对于ARM7使用的外部中断控制器,Cortex-M3内核中集成了中断控制器,芯片制造厂商可以对其进行配置,提供基本的32个物理中断,具有8层优先级,最高可达到240个物理中断和256个中断优先级。
此类设计是确定的且具有低延迟性,特别适用于汽车应用。
NVIC使用的是基于堆栈的异常模型。
在处理中断时,将程序计数器,程序状态寄存器,链接寄存器和通用寄存器压入堆栈,中断处理完成后,在恢复这些寄存器。
堆栈处理是由硬件完成的,无需用汇编语言创建中断服务程序的堆栈操作。
中断嵌套是可以是实现的。
中断可以改为使用比之前服务程序更高的优先级,而且可以在运行时改变优先级状态。
使用末尾连锁( tail-chaining)连续中断技术只需消耗三个时钟周期,相比于 32个时钟周期的连续压、出堆栈,大大降低了延迟,提高了性能。
如果在更高优先级的中断到来之前, NVIC已经压堆栈了,那就只需要获取一个新的向量地址,就可以为更高优先级的中断服务了。
同样的,NVIC不会用出堆栈的操作来服务新的中断。
这种做法是完全确定的且具有低延迟性。
5.睡眠Cortex-M3的电源管理方案通过NVIC支持Sleep Now, Sleep on Exit (退出最低优先级的ISR) andSLEEPDEEP 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也宣布生产该类产品。
(Luminary已经被TI收购)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内核的芯片,并避免使用那些会使重定义变得复杂的功能。
11.IAR YellowSuite for ARMIAR 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++ 编译器、汇编器、连接器和调试器。