最近在关注Cortex-M处理器,针对目前进入大众视野的M0、M3、M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵。

Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。.

一、比较Cortex-M 处理器

Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个 Cortex-M 处理器无缝发展到另一个成为可能。

M Cortex-M 技术

CMSIS

ARM Cortex 微控制器软件接口标准 (CMSIS)是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。 使用 CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。

深入:嵌套矢量中断控制器 (NVIC)

NVIC 是 Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。

Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。

为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于 C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。

在硬件中完成对中断的响应

Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:

检测中断

背对背或迟到中断的最佳处理(参见下文)

提取矢量地址

将易损坏的寄存器入栈

跳转到中断处理程序

这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。

NVIC 中的尾链

在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低 MHz 系统的性能。

NVIC 对迟到的较高优先级中断的响应

如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。

NVIC 进行的堆栈弹出抢占

同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。

二、为什么选择

1、为什么选择Cortex-M0

能耗最低的最小 ARM 处理器

Cortex-M0 的代码密度和能效优势意味着它是各种应用中 8/16 位设备的自然高性价比换代产品,同时保留与功能丰富的 Cortex-M3 处理器的工具和二进制向上兼容性。

超低的能耗 

Cortex-M0 处理器在不到 12 K 门的面积内能耗仅有 85 µW/MHz(0.085 毫瓦),所凭借的是作为低能耗技术的领导者和创建超低能耗设备的主要推动者的无与伦比的 ARM 专门技术。

简单

指令只有 56 个,这样您便可以快速掌握整个 Cortex-M0 指令集(如果需要);但其 C 语言友好体系结构意味着这并不是必需的。可供选择的具有完全确定性的指令和中断计时使得计算响应时间十分容易。

优化的连接性

设计为支持低能耗连接,如 Bluetooth Low Energy (BLE)、IEEE 802.15 和 Z-wave,特别是在这样的模拟设备中:这些模拟设备正在增加其数字功能,以有效地预处理和传输数据。

2、为什么选择Cortex-M3

提供更高的性能和更丰富的功能

于 2004 年引进、最近通过新技术进行了更新并更新了可配置性的 Cortex-M3,是专门针对微控制器应用开发的主流 ARM 处理器。

性能和能效 

具有高性能和低动态能耗,Cortex-M3 处理器提供领先的功效:在 90nmG 基础上为 12.5 DMIPS/mW。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。

全功能

该处理器执行 Thumb®-2 指令集以获得最佳性能和代码大小,包括硬件除法、单周期乘法和位字段操作。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。

丰富的连接

功能和性能的组合使基于 Cortex-M3 的设备可以有效处理多个 I/O 通道和协议标准,如 USB OTG (On-The-Go)。

3、为什么选择Cortex-M4

­目标用用:专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。

曾获大奖的高能效数字信号控制

Cortex-M4 提供了无可比拟的功能,以将 32 位控制与领先的数字信号处理技术集成来满足需要很高能效级别的市场。

易于使用的技术

Cortex-M4 通过一系列出色的软件工具和  Cortex 微控制器软件接口标准 (CMSIS)使信号处理算法开发变得十分容易。

三、规范

1、M0

ARM Cortex-M0 处理器执行 Thumb 指令集,包括少量使用Thumb-2 技术的32 位指令。这是ARM Cortex-M3 和ARM Cortex-M4 支持的指令集的二进制向上可兼容子集。

2、M3

内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用通用 TSMC 工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成核心的说明。面积数字包括 CM3Core、嵌套向量中断控制器 (NVIC) 和总线矩阵,但不包括可选组件(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和跟踪端口接口单元)。

速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。

3、M4

内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用低功耗工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成内核的说明。面积数字包括中央内核(包括 DSP 扩展、嵌套矢量中断控制器 (NVIC) 和总线矩阵),但不包括可选组件(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和 TracePort Interface Unit。

速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。

以下的一点为M4页面特有的介绍:

系统 IP

系统 IP 组件对于在芯片上构建复杂的系统至关重要,通过利用系统 IP 组件,开发人员可以显著缩短开发和验证周期,从而节省成本并缩短产品的上市时间。

注:以上内容摘自http://www.arm.com/

 目前部分主流厂家的产品介绍:

德州仪器:

1、 ­LM3Sxxxx系列(M3)

2、 LM4Fxxxx系列(M4)

意法半导体:

1、  STM32 F0xx系列(M0  48MHZ)

2、 STM32 Lxxx系列(M3  32MHZ)

3、  STM32 F1xx系列(M3  72MHZ)

4、  STM32 F2xx系列(M3  120MHZ)

5、  STM32 F3xx系列(M3  120MHZ)??

6、  STM32 F4xx系列(M4  168MHZ)

NXP:

1、 LPC11xx  LPC12xx系列(M0)

2、 LPC13xx  LPC17xx LPC18xx 系列(M3)

3、 LPC43xx  系列(M4)

飞思卡尔:

1、  Kinetis L系列(M0+)

2、  Kinetis X系列、K系列(M4)

Atmel:

1、 SAM3S/U/N系列(M3)

2、 SAM4S系列(M4)

3、 SAM7xxxx系列(ARM7)

4、 SAM9xxxx系列(ARM9)

英飞凌:

1、 XCM4000系列(M4,是英飞凌第一次推出ARM架构的MCU)

富士通:

1、 FM3家族(M3)

SILICON LABS:

1、 SiM3C1xx(80MHZ)系列 (M3)

2、 SiM3U1xx(80MHZ  USB)系列(M3)

来源:https://blog.csdn.net/chiooo/article/details/50463520

关注Cortex-M处理器,M0、M3、M4简单对比相关推荐

  1. M0、M3、M4简单对比

    最近在关注Cortex-M处理器,针对目前进入大众视野的M0.M3.M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,呵呵. Cortex-M 系列针对成本和功耗敏感的  ...

  2. 单片机差分升级算法(STM32,M0,M3,M4等芯片都适用)

    为方便技术交流探讨,特建一个QQ群:47954837   ,欢迎加入! 目前新开发出的RLE_X3差分还原算法,已经能够支持最小1K的内存空间,目前有MDK默认编译器的ARM系列的库,欢迎进群索取. ...

  3. cortex m3/m4处理器的复位设计

    cortex m3/m4处理器在复位层面总体上可以划分为core和debug logic两部分.core部分包括处理器内核(core)以及NVIC,BUS Matrix,MPU的非debug部分.de ...

  4. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

  5. ARM 架构 ARM7 ARM9 STM32 Cortex M3 M4 51 AVR 有啥区别

    ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...

  6. 新年开工第一篇文章——推荐几个值得中小企业使用的ARM9/ARM11/Cortex A8处理器

    //toppic:推荐几个值得中小企业使用的ARM9/ARM11/Cortex A8处理器 // 作者:gooogleman //原文地址:http://blog.csdn.net/goooglema ...

  7. Cortex M33处理器下移植FreeRTOS V10.2.0的操作记录

    1.前言 本文记录了本人使用Keil V5.28向Cortex M33处理器下的一款MCU进行FreeRTOS V10.2.0的移植操作,过程中描述如存在不当或错误之处欢迎指正. 2.FreeRTOS ...

  8. T-SQL - 习题02_将数据表year|month|amount查询成year|m1|m2|m3|m4的样式

    时间:2017-09-11 整理:byzqy 题目:有个年度统计表,结构如下: 怎么样把这个表,查询成这样一个结果: 这是在面试过程中遇到的一个关于数据库的题,没有一点思路,不知它考查到的知识点是什么 ...

  9. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

最新文章

  1. PHPCMS V9 杂记一
  2. 【每日一算法】使用二分法解决x 的平方根问题
  3. P1164 小A点菜
  4. 数据列表DataList模板之实例
  5. 一个FragmentActivity多个Fragment的生命周期事件记录
  6. [Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?
  7. Android Studio之查找当前类的位置图标没了
  8. 6.824 RPC lesson2 2020(二)
  9. 聊聊我在美团做算法的感受
  10. 手把手带你了解安卓Unity3D手游
  11. Clash of Clans通关秘诀
  12. Hbase KeyValue结构详解
  13. ipq4019 识别板卡型号的过程
  14. ubuntu14.04编译ffmpeg的过程
  15. 19、【易混淆概念集】第十一章3 应急计划 VS 弹回计划 实施风险应对 监督风险
  16. 2017计算机组装视频,【2017年整理】计算机组装维修教程11.ppt
  17. pytz.exceptions.UnknownTimeZoneError解决办法
  18. 考研日语线上笔记(六):完型专项篇
  19. 计算机科学与技术用什么配置的笔记本,笔记本电脑什么配置好?这两大标准你知道吗?...
  20. cluster_acc计算

热门文章

  1. 51nod1092(lcs简单运用/dp)
  2. 线上Slave报1062的案例
  3. php连接mssql的一些方法总结
  4. 解题报告 poj 2109
  5. VM虚拟机Centos系统时间同步
  6. 2008秋-计算机软件基础- 实验一 参考源程序
  7. js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝
  8. 有趣的HTML5/CSS3艺术网站
  9. Windows下使用Dev-C++开发基于pthread.h的多线程程序
  10. Hadoop和大数据:60款顶级开源工具