Cortex-M3

大家听说过Cortex-M3吗?在嵌入式处理器的世界,cortex-M3是一位人见人爱的后生。它的成本和功耗低,可配置性很高。如今,很多ARM的工程师加入了cortex-M3的学习与开发中,WIZnet一直都是行业的领先者,即将上市的新产品W7200正是加入了cortex-M3处理器的全硬件TCP/IP协议栈芯片,通过利用它的优势,相信会得到更多客户的青睐。下面,广大的嵌入式爱好者可以跟随我们一起来了解cortex-M3,加入到基于这一先进的32位处理器的嵌入式开发学习。 

Cortex-M3 学习(一)

1.走进cortex-M3

ARM Cortex- M3 处理器是行业领先的 32 位处理器,适用于具有高确定性的实时应用,已专门开发为允许合作伙伴为范围广泛的设备(包括微控制器、汽车车体系统、工业控制系统以及无线网络和传感器)开发高性能低成本的平台。该处理器提供出色的计算性能和对事件的卓越系统响应,同时可以应对低动态和静态功率限制的挑战。该处理器是高度可配置的,可以支持范围广泛的实现(从那些需要内存保护和强大跟踪技术的实现到那些需要极小面积的对成本非常敏感的设备)。

                                                                              (基于Cortex-M3的闪存MCU)

2.要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。而ARM
Cortex-M3相比于ARM其他系列微控制器,具有以下优势或特点:

1). 三级流水线+分支预测
ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。
现代处理器大多采用指令预取和流水线技术,以提高处理器的指令执行速度。流水线处理器在正常执行指令时,如果碰到分支(跳转)指令,由于指令执行的顺序可能会发生变化,指令预取队列和流水线中的部分指令就可能作废,而需要从新的地址重新取指、执行,这样就会使流水线“断流”,处理器性能因此而受到影响。特别是现代C语言程序,经编译器优化生成的目标代码中,分支指令所占的比例可达10-20%,对流水线处理器的影响会的更大。为此,现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支(跳转)指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。

2). 哈佛结构
从内核访问指令和数据的不同空间与总线结构,可以把处理器分为哈佛结构和普林斯顿结构(或冯.诺伊曼结构)。冯.诺伊曼结构的机器指令、数据和I/O共用一条总线,这样内核在取指时就不能进行数据读写,反之亦然。这在传统的非流水线处理器(如MCS51)上是没有什么问题的,它们取指、执行分时进行,不会发生冲突。但在现代流水线处理器上,由于取指、译码和执行是同时进行的(不是同一条指令),一条总线就会发生总线冲突,必须插入延迟等待,从而影响了系统性能。ARM7TDMI内核就是这种结构的。
而哈佛结构的处理器采用独立的指令总线和数据总线,可以同时进行取指和数据读写操作,从而提高了处理器的运行性能。ARM
Cortex-M3、ARM966E、ARM926EJ、ARM1136JF等内核都采用了哈佛结构。

3). 内置嵌套向量中断控制器(NVIC)
针对业界对ARM处理器中断响应的问题,Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。Cortex-M3的中断延迟只有12个时钟周期(ARM7需要24-42个周期);Cortex-M3还使用尾链技术,使得背靠背(back-to-back)中断的响应只需要6个时钟周期(ARM7需要大于30个周期)。以STM32运行在75MHz为例,中断延迟只有80ns-160ns。另外,Cortex-M3采用了基于栈的异常模式,使得芯片初始化的封装更为简单。
ARM7TDMI内核不带中断控制器,具体MCU的中断控制器是各芯片厂商自己加入的,这使得各厂商的ARM7
MCU中断控制部分都不一样,给用户使用及程序移植带来了很大麻烦。Cortex-M3内核集成NVIC,各厂商生产的基于Cortex-M3内核的MCU都具有统一的中断控制器,对用户使用各种Cortex-M3
MCU,特别是中断编程带来了很大的便利。

4). 支持位绑定操作
以前的ARM内核不支持位操作,当需要对一个变量或端口的某一位操作时,先要用逻辑与/或指令屏蔽其他的位,使位操作需要较多的指令和时钟周期。ARM
Cortex-M3采用了一种特殊的方法——位绑定:把一个地址单元的32位变量中的每一位,通过一个简单的地址转换算法,映射到另一个地址空间,每一位占用一个地址,对此地址空间的操作,只有数据的最低一位是有效的,其余高31位的值被忽略。相当于把一个“横”的32位字给“竖”起来。这样对新的映射空间操作时,就可以不用屏蔽操作,优化了RAM和I/O寄存器的读写,提高了位操作的速度。
这种方法粗看起来好像损失了很多地址空间,其实对于32位的ARM处理器而言,总共可以寻址4GB的空间,而对于一个MCU来说,一般只用到几百KB的空间。所以这种处理方法丝毫不会影响一个MCU的正常使用,又大大简化了处理器的设计,可以说是一种良策。

5). 支持串行调试(SWD)
ARM处理器一般都使用JTAG调试接口,使得仿真、调试工具统一而廉价,方便了用户开发。但JTAG调试接口至少要占用芯片的5-6个引脚,这对于一些引脚较少的MCU来说,有时会对仿真调试和I/O使用带来麻烦。
ARM
Cortex-M3在保持原来JTAG调试接口的基础上,还支持串行调试(SWD)。使用SWD时,只占用2个引脚,就可以进行所有的仿真和调试,节省了调试用引脚,用户就可以使用更多的引脚。
另外,Cortex-M3支持8个硬件断点(ARM7、ARM9只支持2个硬件断点),可以减少断点调试时对代码的影响,保证仿真、调试的时序准确性。

6). 内核支持低功耗模式
ARM内核已经是一个高性能、低功耗的内核,但ARM7、ARM9等内核本身只有运行/停止模式,没有其他模式。各芯片厂商只能在内核基础上,对各自加入的外设定义各种低功耗模式。Cortex-M3加入了类似于8位处理器的内核低功耗模式,支持3种功耗管理模式:通过一条指令立即睡眠;异常/中断退出时睡眠;深度睡眠。使整个芯片的功耗控制更为有效。以STM32为例,其RAM和寄存器状态保持的停机模式耗电仅为14uA,从此状态的启动时间仅为7us。
Cortex-M3的运行功耗(Active
Mode)也很低。以STM32系列微控制器为例,其典型功耗约为500uA/MHz,也只是目前业界超低功耗单片机MSP430系列(约为250uA/MHz)的2倍。但MSP430是16位处理器,而STM32是32位处理器。

时间: 2024-09-15 09:46:25

Cortex-M3的相关文章

cortex m3 uc os-cortex m3移植uC/OS后程序运行一段时间停止或者跑飞

问题描述 cortex m3移植uC/OS后程序运行一段时间停止或者跑飞 鄙人最近需要在Atmel sam3x8e开发板上移植uC/OS操作系统,移植成功之后发现系统运行一段时间后总是会跑飞或者停止.经调试发现在pendsv处理任务切换的中断服务函数的BX LR这一条汇编语句之前是好的,但是执行了这个语句之后发现程序停止运行或者不知道跑哪去了.需要注意的是是在系统正常运行一段时间之后才会发生上述情况.由于不能单步调试,所以最后也不知道程序最终bx到哪执行去了,求大神指点,万分感谢!!! 程序代码

STM32介绍以及与通常ARM的区别

ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核----ARM系列,最常用的是ARM7和ARM9,ARM公司主要提供IP核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器. ARM把这个核卖给各大半导体公司,如 Pllips 三星 ,ATMEL 等等,许多公司,甚至Intel.ARM为了对付 8位机市场,最近推出了 Cortex-M3核,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器, Cortex_M3核 性价比更高,价格低,可以与8位

用于无线通信的IoT电路板Electron

Particle.io已经开始对外发行出售Electron了,这是一个可以和Arduino高度兼容的无线通信IoT电路板,主要面向对象是机对机(M2M)App应用.此类Electron能够实现IoT设备在云端远程沟通交流,即使在没有WiFi可连接的情况下也不妨碍交流,但是至少需要2G或3G移动无线连接才能用起来.可以说,Electron是Particle早起产品Photon的一个升级版本,Photon同样也是一个类似的装置,使用WiFi进行通信. 这里再赘述一下这个很少有人知道的Electron

移动物联网的Arduino开发板:Particle推出Electron

随着移动物联网和智能硬件创业的火热,市场对能加快原型开发的移动GSM蜂窝网络开发组件的需求越来越旺盛(编者按:例如开发一款可以追踪位置的智能旅行箱,或者老年人监护标签).近日移动物联网应用开发工具提供商Particle发布了一款单片电脑开发板--Electron,开发者可以使用Arduino代码开发整合GSM通讯模块的移动无线设备. 此前Particle公司曾经发布过Photon--一款整合WiFi通讯模块的开发套件,除了内置的代码外,Photon和Electron都能使用Arduino代码进行

可靠的通信是物联网增长的关键所在

据技术行业研究公司Gartner表示,物联网中每天增加的"事物"多达550万件.截止2020年,预计总数将达208亿.鉴于这种爆炸式增长,检查连接所有事物并在它们之间实现通信的互联网势在必行.事实证明,在这些设备之间建立可靠的无线连接是物联网的最大挑战之一.通信系统的可靠性可以用两个关键元件的性能来定义:射频收发器和通信微控制器.本文讨论ADI公司的元件和解决方案如何能够最大程度地提高系统级可靠性,以支持对数据质量和完整性以及洞察有极高要求的高影响力应用. 现有技术还不够好 面向消费电

WiFi模组的春天与噩梦

    WiFi模组一夜捧红了BroadLink,眼热了小米.利尔达作为一家老牌的电子元器件代理商,在小米或将低价杀入WiFi模组市场的前夜,他们是怎么看待小米的进入?小米的进入会对他们带来怎样的影响?于是宅客君走访了利尔达WiFi产品经理顾航. 在十几年前,利尔达开始做电子元器件的代理,在3年前开始自己研发.销售自己的WiFi模组,在1年前又开始做汉枫WiFi模组的代理.这里宅客君要为大家脑补一下的是,WiFi模组分为标准式和嵌入式两类,前者只能用在有操作系统运营的设备(比如电脑手机),后者则

TI收购LuminaryMicro壮大微处理器产品阵营

日前,德州仪器(TI)宣布收购市场领先的基于ARM Cortex?-M3 的 32 位 MCU 供应商Luminary Micro,从而进一步壮大了其微处理器 (MCU) 产品阵营.成功收购 Luminary Micro的Stellaris 系列Cortex-M3处理器将极大增强 TI 提供业界最完整 MCU产品系列的实力.此次收购意味着客户从现在开始即可体验 Stellaris MCU丰富的创新功能,以及TI作为全球领先半导体供应商所拥有的卓越用户体验与雄厚技术实力. Stellaris器件将

海尔发布第二代空气盒子

摘要: 海尔今天在京发布了旗下空气盒子二代的概念设计和功能亮点,产品预计将在2015年的美国CES展会上亮相. 相比之前的产品,第二代空气盒子有几个亮点值得一提. 首先是检测,在PM2 海尔今天在京发布了旗下空气盒子二代的概念设计和功能亮点,产品预计将在2015年的美国CES展会上亮相. 相比之前的产品,第二代空气盒子有几个亮点值得一提. 首先是检测,在PM2.5.VOC的基础上,二代产品新增了对甲烷.甲醛.一氧化碳等有害气体的检测.同时新品增加了语音和数字显示功能,做到声光字报警.值得一提的是

在X60笔记本上运行Windows 7 M3效果

Windows 7 M3 Build 6801.0.080913-2030(以下简称:Win7 M3)在虚拟机中的测试结果令我满意,系统稳定性相当高,这使我有足够的信息将 Win7 M3 直接运行在我的笔记本上.在今天上午,直接重做了我的笔记本系统,由于 X60 没有光驱,我使用之前在移动硬盘上的 Windows PE 2.0 引导计算机,运行集成在 PE 里的 MSVirtua lCD,载入保存在笔记本 D 盘上的 Win7 ME3 的安装映像(ISO)文件,执行全新的安装.注意,如果你也适用

CM11 M3极速发布:半稳定的安卓4.4

作为刷机玩家最爱的第三方安卓ROM之一,CyanogenMod一向以升级速度快.支持设备广而闻名.CM11 Nightly测试版本刚刚发布,更稳定的M3 Snapshot又来了.按照CM的发布惯例,Nightly是完全尝鲜性质的,代码最新,但会有不少Bug,稳定性也不保证. Snapshot M则是大约每个月更新一次,相比于Nigtly Bug和问题较少,稳定性也更好一些,但是比RC候选版和最终正式版还是差一些. 即便如此,CM M版本也要比其他很多ROM的稳定版都更值得信赖,理论上不会有什么明