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位处理器。

Cortex-M3

时间: 2024-10-08 01:46:58

Cortex-M3的相关文章

ARM cortex M3寄存器及指令集

1.cortex M3拥有通用寄存器R0-R15及一些特殊寄存器: R0‐R7 也被称为低组寄存器.所有指令都能访问它们.它们的字长全是 32 位,复位后的初始值是不可预料的. R8‐R12 也被称为高组寄存器.这是因为只有很少的 16 位 Thumb 指令能访问它们, 32位的指令则不受限制.它们也是 32 位字长,且复位后的初始值是不可预料的 . R13 是堆栈指针.在 CM3 处理器内核中共有两个堆栈指针,于是也就支持两个堆栈.当引用 R13(或写作 SP)时,你引用到的是当前正在使用的那

Cortex M3 NVIC与中断控制

Cortex M3 NVIC与中断控制 宗旨:技术的学习是有限的,分享的精神的无限的. 一.NVIC概览 --嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外, NVIC 还包含了 MPU. SysTick 定时器以及调试控制相关的寄存器. NVIC 共支持 1 至 240 个外部中断输入(通常外部中断写作 IRQs).具体的数值由芯片厂商在设计芯片时决定.此外, NVIC 还支持一个"永垂不朽"的不可屏蔽中断( NMI)输入

stm32和cortex M3学习内核简单总结

1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来把我学到的东西做一个系统的概述: 上图是stm32的系统结构. 使用哈弗体系结构,取指和取数据分离, ICODE指令总线连接到flash闪存指令存储区,这个存储区的地址在0x00000000-0x1FFFFFFF之间,负责取指操作. DCODE数据总线负责在0x00000000-0x1FFFFFFF

ARM7 与Cortex M3的区别

Cortex-M3和ARM7的比较 2005年3月,ARM公司公布了最新的ARMv7架构,并定义了三大系列: ”A“系列面向尖端的基于虚拟内存的操作系统和用户应用.主要针对日益增长的运行包括Linux.Windows CE和Symbian在内的消费电子和无线产品: ”R“系列针对实时系统.主要针对需要运行实时操作系统来进行控制应用的系统,包括骑车电子.网络和影像系统. ”M“系列针对微控制器和低成本应用提供优化.针对开发费用非常敏感,同时对性能要求不断增加的嵌入式应用,如微控制器.骑车车身控制系

Introduction to Cortex Serial Wire Debugging

Serial Wire Debug (SWD) provides a debug port for severely pin limited packages, often the case for small package microcontrollers but also complex ASICs where limiting pin-count is critical and can be the controlling factor in device costs. SWD repl

第21章 RTX 低功耗之睡眠模式

低功耗是 MCU 的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验. 本章节为大家讲解 M3/4的低功耗方式之睡眠模式在 RTX 操作系统上面的实现方法(RTX 本身支持的 tickless 低功耗模式在第 24 章节讲解) STM32F103 睡眠模式介绍说明:在 RTX 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看 STM32F103 参考手册和 Cortex-M3 权威

STM32L151解密STM32L152芯片解密IC程序破译多少钱?

STM32L151解密STM32L152芯片解密IC程序破译 IC芯片解密型号: STM32L100R8T6,STM32L151C8T6,STM32L152RBT6,STM32L162RDY6 STM32L100RCT6,STM32L151RCT6,STM32L151VBT6,STM32L152C8T6 STM32L15VTH6,STM32L152CCT6 -- 深圳凯基迪科技,专业STM32L151解密STM32L152芯片解密IC程序破译服务.承诺:不成功-不收费! STM32L1系列芯片特

[stm32参考手册] 1、Introduction

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xxand STM32F107xx advanced ARM-based 32-bit MCUs 本资料覆盖范围: 这本资料提供完整的关于上述系列STM单片机的存储器和外设的使用方法.在整个文档中(除非特别说明)是把这几类单片机归于STM32F10XXX系列的. 注:STM32F10XXX是一个包含的各种不同存储器尺寸,不同封装和不同外设的微处理器家族. 其他相关资料引导: 关于订货编号.电气和物理性

第22章 RTX 低功耗之停机模式

STM32F103 停机模式介绍 本章节我们主要讲解停机模式,停机模式是在 Cortex?-M3 的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式.此时在 1.8V 供电区域的的所有时钟都被停止, PLL. HSI 和 HSE RC 振荡器的功能被禁止, SRAM 和寄存器内容被保留下来.在停止模式下,所有的 I/O 引脚都保持它们在运行模式时的状态. STM32F103 如何进入停机模式在 RTX 系统中,让 STM32 进入停机模式比较容易,调用固件

STM32F407应用笔记--使用之前的体会

这些天使用STM32F4系列的CPU设计项目,性能十分强大,ARM和DSP二核一,号称DSC. 设计硬件之后,开始设计软件,大体有两个方向:一是使用库函数,二是使用实时操作系统.其它直接操寄存器的软件写法就避免了吧,重复造轮子没有意义. 下面是一些使用体会:(引用一个开发板厂家) 为 STM32F4 作为目前最热门的 ARM Cortex M4 处理器,由于其强大的功能,可替代 DSP 等特性,正在被越来越多的公司选择使用.学习 STM32F4 的朋友也越来越多,初学者,可能 会认为 STM32