1.天生荣耀:ARM Cortex-M处理器由来

  ARM公司自2004年推出ARMv7内核架构时,摒弃了以往"ARM+数字"这种处理器命名方法(ARM11之前的处理器统称经典处理器系列),重新启用Cortex来命名,并将Cortex系列细分为三大类:

  • Cortex-A系列:面向性能密集型系统的应用处理器内核
  • Cortex-R系列:面向实时应用的高性能内核
  • Cortex-M系列:面向各类嵌入式应用的微控制器内核

  Cortex-M系列主要是用来取代经典处理器ARM7系列(比如基于ARMv4架构的ARM7TDMI),Cortex-M比ARM7的架构高了3代,性能也有较大提升,所以新的设计推荐使用Cortex-M,关于从ARM7到Cortex-M的移植详见ARM官网指导 ARM7处理器系列,想要对ARM内核版本演变有更多了解,可以看看我的另一篇博客 ARM内核体系架构编年史(精简版)

2.羽翼渐丰:ARM Cortex-M处理器家族

  从2004年ARM公司推出第一款基于ARMv7M架构的Cortex-M3处理器开始,至今(2016)为止Cortex-M处理器家族已经发展到了Cortex-M7,下面是具体各处理器的发布时间及特点:

  • Cortex-M3:2004年10月发布,面向标准嵌入式市场的高性能低成本的ARM处理器
  • Cortex-M1:2007年03月发布,专门面向FPGA中设计实现的ARM处理器
  • Cortex-M0:2009年02月发布,面积最小以及能耗极低的ARM处理器
  • Cortex-M4:2010年02月发布,在M3基础上增加浮点、DSP功能以满足数字信号控制市场的ARM处理器
  • Cortex-M0+:2012年03月发布,在M0基础上进一步降低功耗的ARM处理器
  • Cortex-M7:2014年09月发布,在M4基础上进一步提升计算性能和DSP处理能力的ARM处理器,主要面向高端嵌入式市场

  关于ARM Cortex-M具体特点 详见官网介绍 ARM Cortex-M内核系列介绍

  备注:每个Cortex-Mx处理器并非只有一个版本,以Cortex-M3为例,至今已有4个版本:r0p0、 r1p0、 r1p1、 r2p0,版本间有微小差异,详见 ARM Cortex-M系列内核文档

3.初露锋芒:第一款Cortex-Mx微控制器产品

  ARM公司提供了强大的Cortex-M处理器,接下来就到了各大半导体OEM厂商施展身手的时候了,谁都知道,抢占市场先机很重要,接下来让我们看看到底是谁分别抢先发布了ARM Cortex-Mx第一款微控制器:

  • 2006年03月,流明诺瑞Luminary Micro(09年被TI收购)率先推出了第一款基于ARM Cortex-M3处理器的Stellaris LM3S系列MMCU,但当时反响寥寥,直到2007年6月ST同样推出基于该内核的STM32 F1系列MCU才使之大放光芒。
  • 2009年03月,恩智浦半导体NXP率先推出了第一款基于ARM Cortex-M0处理器的LPC1100系列MCU。
  • 2010年08月,飞思卡尔半导体Freescale(15年被NXP并购)率先推出了第一款基于ARM Cortex-M4处理器的Kinetis K系列MCU。
  • 2012年11月,恩智浦半导体NXP继续率先推出了第一款基于ARM Cortex-M0+处理器的LPC800系列MCU。
  • 2014年09月,意法半导体ST率先推出了第一款基于ARM Cortex-M7处理器的STM32 F7系列MCU。

4.逐鹿中原:Cortex-Mx微控制器产品市场份额

  有的时候,抢占了先机,但不一定能笑到最后,打江山容易守江山难。Cortex-M微控制器市场发展至今,天下大势,分分合合,各半导体厂商为了争夺市场份额,各显神通:

  • 意法半导体:主打通用市场份额、产品价格优势第一,旗下产品线STM32囊括Cortex-M家族全系列,对于竞争对手的合并动作不以为意。
  • 恩智浦半导体:主打汽车半导体市场、产品线广度第一,并购飞思卡尔后,旗下Kinetis产品线(Cortex-M0+/4/7)以及LPC产品线(Cortex-M0/0+/3/4)整合出最广产品线。
  • 赛普拉斯半导体:主打存储器领域市场、产品总数量第一,收购飞索半导体Spansion以及博通IoT部门后,造就最多产品数。

  此外一些知名半导体厂商在Cortex-M产品市场份额争夺战中渐渐掉了队,比如收购Luminary的德州仪器TI,因为其DSP产品超强计算能力以及MSP430产品超低功耗优势,导致其对于Cortex-M产品推广未尽全力;还有8/16位 MCU时代霸主爱特梅尔Atmel(16年被Microchip收购),其8051及AVR产品的优势导致其在Cortex-M之战中失了先机。

  Cortex-M处理器还在继续发展,32bit微控制器市场风云变幻,谁都不知道到底下一秒鹿死谁手。

参考资料

[1]. 你知道哪家半导体拥有最多种基于Cortex-M 内核的MCU?

[2]. 忘掉MCU吧 解析Cortex-M4的时代

[3]. 【揭秘】9年时间,ST如何把STM32出货从0做到16亿的?

[4]. 恩智浦+飞思卡尔后你需要知道的十件事

[5]. Cypress与Spansion都联姻了,你还在等什么?

[6]. 非ARM架构MCU四面楚歌,抢来的Atmel适合Microchip吗?

豹哥嵌入式讲堂:ARM知识概要杂辑(2)- 第一款Cortex-M处理器的更多相关文章

  1. 豹哥嵌入式讲堂:ARM知识概要杂辑(1)- 内核架构编年史

    众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家.这些厂家基本涵盖了全球领先的知名半导体企业.软件和OEM厂商:T ...

  2. 豹哥嵌入式讲堂:ARM知识概要杂辑(4)- Cortex-M处理器性能指标

    1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不同,下面介绍嵌入式行业广泛使用的两个经典的测试标准. 1.1 Dhrystone标准 Dhrysto ...

  3. 豹哥嵌入式讲堂:ARM开发中有用的文件(1)- source文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的source文件种类. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就 ...

  4. 豹哥嵌入式讲堂:ARM开发之文件详解(2)- linker文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的linker文件. 在前一节课source文件详解里,豹哥给大家系统地介绍了source文件,source文件是嵌入式工程里典 ...

  5. 豹哥嵌入式讲堂:ARM开发之文件详解(3)- project文件

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的project文件. 前面两节课里,豹哥分别给大家介绍了嵌入式开发中的两种典型input文件:source文件.linker文 ...

  6. 豹哥嵌入式讲堂:ARM开发之文件详解(4)- relocatable文件(object, library)

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的relocatable文件(object, library). 前三节课里,豹哥都是在给大家介绍嵌入式开发中的input文件. ...

  7. 豹哥嵌入式讲堂:ARM Cortex-M开发之文件详解(8)- 镜像文件(.bin/.hex/.s19)

    大家好,我是豹哥,猎豹的豹,犀利哥的哥.今天豹哥给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是豹哥<ARM Cortex-M开发之文件详解>主 ...

  8. 嵌入式Linux基础知识

    一.构建嵌入式开发环境 1.编译bootloader并烧写到板子中---uboot, 可以自己定制bootloader and logo 2.编译file system 并烧写--内嵌APP 3.编译 ...

  9. 痞子衡嵌入式:ARM Cortex-M内核MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是ARM Cortex-M内核微控制器相关知识. ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包 ...

随机推荐

  1. 【转载】MySQL · 性能优化· InnoDB buffer pool flush策略漫谈

    背景 我们知道InnoDB使用buffer pool来缓存从磁盘读取到内存的数据页.buffer pool通常由数个内存块加上一组控制结构体对象组成.内存块的个数取决于buffer pool inst ...

  2. mongodb 的基本函数语法封装

    //这个模块里面封装了所有对数据库的常用操作 var MongoClient = require('mongodb').MongoClient; var config = require(" ...

  3. React Native分享第三方遇到的问题

    这几天做APP的分享,好多东西都不懂,踩了好多坑,所幸现在做好了,开心^_^ 时间紧,随便记一下先. 1.签名文件要和各平台的签名一致 2.新浪微博和微信的分享要打包之后,加上签名了才可以(我一直不知 ...

  4. webshell 生成工具 b374k

    还在为不会写webshell而感到心累?还在为webshell有后而不敢用?? b374k,我们首先去github下载b374k https://github.com/b374k/b374k.git ...

  5. 【批处理学习笔记】第十四课:常用DOS命令(4)

    系统管理at 安排在特定日期和时间运行命令和程序shutdown立即或定时关机或重启taskkill结束进程(WinXPHome版中无该命令)tasklist显示进程列表(Windows XP Hom ...

  6. 深度优先搜索(DFS)专题讲座PPT截图【需要原稿的请留言或私信】

    以下是今晚我在bilibili直播讲DFS算法的时候的ppt截图,ppt搞了一下午,水平有限,只能做成这个样子,供大家参考!(如果需要原稿,请在评论区留言或私信告诉我,我会发到你的邮箱里),感谢各位的 ...

  7. 51Nod 1277 字符串中的最大值(KMP,裸题)

    1277 字符串中的最大值 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如: ...

  8. HDU 1232 并查集

    畅通工程                                                                                            Time ...

  9. Java入门篇(三)——Java流程控制

    前两篇已经了解了Java语言基础,本篇开始Java的流程控制.流程控制对任何一门编程语言都是至关重要的,它提供了控制程序步骤的基本手段. 一.复合语句 Java语言的复合语句是以整个块区为单位的语句, ...

  10. JXLS 2.4.0系列教程(一)——最简单的模板导出

    Java中实现excel根据模板导出数据的方法有很多,一般简单的可以通过操作POI进行.还可以使用一些工具很轻松的实现模板导出.这些工具现在还在维护,而且做得比较好的国内的有easyPOI,国外的就是 ...