大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是第一款Cortex-M微控制器

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处理器开始,至今(2018)为止Cortex-M处理器家族已经发展到了Cortex-M33,下面是具体各处理器的发布时间及特点:

  • Cortex-M3:2004年10月发布,基于ARMv7M架构,面向标准嵌入式市场的高性能低成本的ARM处理器
  • Cortex-M1:2007年03月发布,基于ARMv6M架构,专门面向FPGA中设计实现的ARM处理器
  • Cortex-M0:2009年02月发布,基于ARMv6M架构,面积最小以及能耗极低的ARM处理器
  • Cortex-M4:2010年02月发布,基于ARMv7M架构,在M3基础上增加浮点、DSP功能以满足数字信号控制市场的ARM处理器
  • Cortex-M0+:2012年03月发布,基于ARMv6M架构,在M0基础上进一步降低功耗的ARM处理器
  • Cortex-M7:2014年09月发布,基于ARMv7M架构,在M4基础上进一步提升计算性能和DSP处理能力的ARM处理器,主要面向高端嵌入式市场
  • Cortex-M23:2016年11月发布,基于ARMv8M baseline架构,在M0/M0+基础上加入TrustZone安全特性支持的ARM处理器,满足IoT物联网安全要求。
  • Cortex-M33:2016年11月发布,基于ARMv8M mainline架构,在M3/M4基础上加入TrustZone安全特性支持的ARM处理器,满足IoT物联网安全要求。

  关于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 Cortex-M内核那些事(2)- 第一款微控制器的更多相关文章

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

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

  2. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是恩智浦i.MX RTxxx系列微控制器相关知识. 恩智浦半导体于2018年10月发布的i.MX RTxxx系列开启了ML/AI MCU ...

  3. 痞子衡嵌入式:恩智浦半导体全系无线(BLE, Zigbee, Thread, 2.4G, Sub-1G)微控制器芯片一览

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦半导体全系列无线微控制器芯片. IoT物联网是未来的趋势,半导体厂商作为IoT产业的上游,主要提供核心的无线芯片,作为半导体知名厂 ...

  4. 痞子衡嵌入式:ARM Cortex-M内核那些事(6)- 系统堆栈机制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M堆栈机制. 今天给大家分享的这篇依旧是2016年之前痞子衡写的技术文档,花了点时间重新编排了一下格式.前面痞子衡 ...

  5. 痞子衡嵌入式:ARM Cortex-M内核那些事(9.1)- 存储保护(MPU - PMSAv6/7)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M存储保护模块(MPU). <ARM Cortex-M内核MCU开发那些事>的内核篇连载最早是 201 ...

  6. 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...

  7. 痞子衡嵌入式:ARM Cortex-M文件那些事(1)- 源文件(.c/.h/.s)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的source文件. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就是 ...

  8. 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的project文件. 前面两节课里,痞子衡分别给大家介绍了嵌入式开发中的两种典型input文件:源文件(.c/.h/.s). ...

  9. 痞子衡嵌入式:Ethos-U55,ARM首款面向Cortex-M的microNPU

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Ethos-U55. ARM 前几天刚发布了 Cortex-M 家族最新一款内核 - Cortex-M55 以及首款面向 Cor ...

随机推荐

  1. history.back(-1) 和history.go(-1) 有什么区别?

    history.back(-1) 返回上一页,当前页面的数据都没有保存下来.就像当前也没有出现过一样. history.go(-1)    返回上一页,当前页的内容都保存下来了,包括session,等 ...

  2. 【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决

    在调用执行API之前添加以下代码就行了 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

  3. centos7 mysql自动备份

    MySQL自动备份shell脚本   在数据库的日常维护工作中,除了保证业务的正常运行以外,就是要对数据库进行备份,以免造成数据库的丢失,从而给企业带来重大经济损失.通常备份可以按照备份时数据库状态分 ...

  4. 什么是URL,URL格式

    什么是URL: 互联网里有很多的网页,大家都需要能够互相访问,就比如在一栋大楼里,有很多的房间,不同房间里的人都想能去任意的其他房间里去,那怎么能够达到这样的想法呢? 很简单,每个房间都挂一个门牌号就 ...

  5. 发现了学校教务处官网的两个BUG

    许久没有写博客了,感觉自己技术还差的好多-_-好像没啥好写的,之前学完了某易的WEB安全基础视频教程,自认对WEB安全入了门,忍不住就想拿学校教务处官网来练练手 教务处登录界面如图所示(为保护隐私,部 ...

  6. Three.js学习笔记03--光

    1. 光源基类 在Threejs中,光源用Light表示,它是所有光源的基类.它的构造函数是: THREE.Light ( hex ) 它有一个参数hex,接受一个16进制的颜色值.例如要定义一种红色 ...

  7. Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

  8. SpringBoot时间戳与MySql数据库记录相差14小时排错

    项目中遇到存储的时间戳与真实时间相差14小时的现象,以下为解决步骤. 问题 CREATE TABLE `incident` ( `id` int(11) NOT NULL AUTO_INCREMENT ...

  9. 14.Git分支-rebase有趣的例子、变基带来的问题及解决方案

    1.有趣的变基例子 如下图所示,你创建了一个特性分支server,然后进行了一些提交(C3和C4),然后又从C3上创建了特性分支client,提交了C8和C9,最后你又回到了server,提交了C10 ...

  10. HBase篇--HBase操作Api和Java操作Hbase相关Api

    一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...