`
happmaoo
  • 浏览: 4473828 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Cortex-M3(1)

 
阅读更多

大家听说过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有如此之大的发展前景,我们将在今后的博客中着重介绍它的相关技术学习,以满足广大WIZnet的关注者和嵌入式开发的爱好者的需要。

更多信息请点击相关博文:http://blog.csdn.net/wiznet2012/article/details/7186387

如果您有什么疑问请留言或者来信:wiznetbj@wiznettechnology.com,希望本篇文章可以给您带来帮助,谢谢。

分享到:
评论

相关推荐

    Cortex-M3 技术参考手册.rar_Cortex-M3_arm-m3内核编程_cortexm3手册_mudva4_参考手册

    1. **中断和异常处理**:Cortex-M3支持多种中断和异常类型,包括硬件中断、软件中断和系统异常。开发者需要理解如何设置中断优先级、中断服务例程(ISR)的编写以及中断上下文的保存和恢复。 2. **寄存器结构**:熟悉...

    ARM Cortex-M3与Cortex-M4权威指南.zip

    **ARM Cortex-M3与Cortex-M4权威指南** 在嵌入式系统设计中,ARM处理器架构因其高效能、低功耗的特点而广受欢迎。本文将深入探讨ARM Cortex-M3和Cortex-M4两个微控制器核心,这两款处理器是ARM公司针对微控制器市场...

    ARM Cortex-M3与Cortex-M4权威指南.rar

    《ARM Cortex-M3与Cortex-M4权威指南》是一本深度解析ARM微处理器架构的专著,主要聚焦在Cortex-M3和Cortex-M4这两款广泛应用的嵌入式处理器上。ARM Cortex-M系列是ARM公司针对微控制器市场设计的一系列高效能、低...

    STM32F10xxx的Cortex-M3编程手册英文文档.zip_Cortex-M3_STM32F103_编程手册英文版

    STM32F10xxx系列微控制器是基于ARM公司Cortex-M3内核的高性能、低功耗微处理器,广泛应用于嵌入式系统设计。Cortex-M3是ARM的32位RISC(精简指令集计算)处理器,旨在提供高效能与低功耗的平衡,特别适合实时控制...

    ARM Cortex-M3与Cortex-M4权威指南 第三版

    1. **ARMv7-M架构**:这是Cortex-M系列处理器的基础,包括寄存器组织、中断处理机制、内存模型等。理解这个架构对于编写高效的嵌入式代码至关重要。 2. **Cortex-M3核心**:详细讲解了Cortex-M3的处理器特性,如...

    ARM Cortex-M3内核结构

    Cortex-M3内核,内部的数据路径为32位,寄存器为32位,存储器接口也是32位。Cortex-M3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问分开进行。Cortex-M3还提供一个可选的MPU,对存储器进行...

    Cortex-M3权威指南英文版

    1. **Thumb-2指令集**:Cortex-M3采用高效的Thumb-2指令集,它是一种16位/32位混合指令集,能够在不增加处理器面积的情况下提高代码密度和执行效率。 2. **硬件浮点支持**:虽然Cortex-M3本身不包含硬件浮点单元...

    Cortex-M3 Technical Reference Manual(英文原版)

    标题《Cortex-M3 Technical Reference Manual》指的是ARM公司发布的官方手册,该手册详细介绍了Cortex-M3处理器的技术规范和参考信息。Cortex-M3是一款由ARM设计的32位处理器核心,主要面向需要高效率、成本效益的...

    ARM Cortex-M3与Cortex-M4权威指南

    ARM Cortex-M3与Cortex-M4权威指南高清版 姚文祥、吴常玉、曹孟娟、王丽红编写的《ARM Cortex-M3与Cortex-M4权威指南(第3版)》经过了全 新修订:增加了ARM Cortex—M4l处理器的信息;对 ARM cortex一M3处理器的讲解...

    Cortex-M3 技术参考手册中文版--周立功

    《Cortex-M3 技术参考手册中文版》是由知名嵌入式系统专家周立功翻译并解析的一本深入理解Cortex-M3处理器核心的重要文献。Cortex-M3是ARM公司设计的一种微控制器核心,广泛应用于各类嵌入式系统,如物联网设备、...

    ARM Cortex-M3M4 权威指南(第三版)+附录+例程.7z

    《ARM Cortex-M3/M4 权威指南》第三版是一本深入探讨ARM Cortex-M3和Cortex-M4处理器架构及应用的权威书籍。Cortex-M系列是ARM公司针对微控制器市场设计的一系列低功耗、高性能的处理器核心,广泛应用于嵌入式系统、...

    Cortex-M3 技术参考手册(中文)

    1. **Thumb-2指令集**:Cortex-M3采用Thumb-2扩展指令集,这是ARM的16位和32位指令集的混合体,提供更紧凑的代码,提高代码密度,降低内存需求。 2. **单周期32位乘法器**:内核内置了硬件乘法器,可在单个时钟周期...

    深入浅出Cortex-M3 LPC17xx下册

    1. **Cortex-M3内核结构**:包括CPU架构、寄存器组织、异常模型、中断处理等,帮助读者理解Cortex-M3的运行机制。 2. **NVIC中断管理**:介绍如何配置和管理中断,包括中断优先级设置、中断向量表、中断处理流程等...

    Cortex-M3权威指南(中文).zip

    Cortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3权威指南(中文).zipCortex-M3...

    Cortex-M3权威指南(中文)1

    《Cortex-M3权威指南》是一本专门为对ARM Cortex-M3处理器感兴趣的软件和硬件开发者编写的书籍。Cortex-M3是ARM公司推出的一种高效能、低功耗的微控制器核心,广泛应用于嵌入式系统设计。该书由Joseph Yiu撰写,宋岩...

    cortex-m3内核

    1. **RISC架构**:Cortex-M3基于 Reduced Instruction Set Computer (RISC) 架构,具有高效能和低功耗的特点。它不支持浮点运算,但可以通过外部硬件加速器来扩展功能。 2. ** Thumb-2 指令集**:Cortex-M3采用了...

    ARM Cortex-M3与Cortex-M4权威指南——新版.7z

    《ARM Cortex-M3与Cortex-M4权威指南》是一本深度解析ARM微处理器架构的专业书籍,特别是针对Cortex-M3和Cortex-M4这两款在嵌入式系统中广泛使用的内核。ARM Cortex-M系列是面向微控制器设计的低功耗、高性能的...

    Cortex-M3和Cortex-M4_的差别

    Cortex-M系列处理器包括Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4和Cortex-M7等多个型号,其中Cortex-M3和Cortex-M4是较为流行的两个型号。本文将详细介绍Cortex-M3和Cortex-M4处理器之间的差异。 Cortex-M3...

Global site tag (gtag.js) - Google Analytics