ARM 与 STM32 是什么关系?

内容纲要

ARM 介绍

1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一 家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发 当地电子仪器设备的业务,比如街头游戏机之类的。

1979年,在经营逐渐进入正规后,原来的公司名不怎么合适了,那个年代喜欢找个吉祥物作为公司名字, 比如Apple公司。这俩就以橡子为吉祥物,取名为“Acron Computer”,中文字面意思就是“橡果公司”。

1981年,也许是改了公司名字,运气就来了,这一年,公司接到一个大单。英国广播公司BBC,计划在 整个英国播放一套电脑普及的教育节目,希望Acron公司可以生产一套配套的电脑,之后英国政府还会海量 采购电脑,在各个学校普及。

接下这个大单后,Acron公司就开始研发产品了。当时处理器正从8位向16位过渡,他们就去找了美国国 家半导体和摩托罗拉公司生产的16位处理器。评估后发现,这些处理器执行上有点慢,中断的响应时间有点 长,还有就是太贵,一台电脑才卖500英镑,处理器成本就要100英镑。于是又把目标转向当时如日中天的 Intel,希望对方提供一些16位80286处理器的设计资料和样品,然而Intel根本就不理他们。

最后,Acorn公司没办法,临时采用了便宜的MOS科技生产的8位6502处理器,勉强研发出符合要求的 个人电脑BBC Micro。绝处逢生的Acorn公司发现处理器受制于人,为了后面长久的发展,于是决定自己研 发处理器。

Acorn公司的研发人员从美国加州大学伯克利分校,找到了一个关于新型处理器的研究——简化指令集。 在此基础上,历时4年的艰苦奋斗,于1985年完成了微处理器的设计,以后的BBC Micro,都用这颗新处理 器。对于这块芯片,Acorn公司给它命名为“Acorn RISC Machine,ARM”,中文字面意思就是“橡果精简 指令集机器”,也就是ARM的第一次出现。

这里插讲一下简化指令集(Reduced Instruction Set Computer,RISC),与之相对应的就是复杂指令集 (Complex Instruction Set Computer,CISC)。早期的处理器都是CISC架构(比如前面Intel处理器),随著时间 推移,有越来越多的指令集加入。但是后来人们发现,整个指令集中,只有约20%的指令常常会被使用到, 大约占了整个程序内容的80%,而剩余80%的指令,只占了整个程序内容的20%(典型的二八原则)。于是, 1979年美国加州大学伯克利分校的David Patterson教授(前面提到的新型处理器研究的作者),提出了RISC的 想法,主张硬件专心加速常用的指令,不常用的指令则利用常用的指令去组合。

就在同一年,1985年10月,英特尔发布了80386,Acorn公司的ARM芯片被吊打。80386采用CISC技术, 所有指令都支持,也就性能更好,但设计成本也高、功耗也大。Acorn公司的ARM芯片采用RISI技术,只支 持常用指令,其它指令需要常用指令去组合,性能也就差一些,但成本低、功耗低、研发快。Acorn公司也 不傻,性能比不过,就突出成本低,功耗低的优势,总有要求成本低、功耗低,性能要求不高的场景,于是 就往我们现在所见的嵌入式方向发展。

1990年,Acorn公司和Apple公司合作,成立新公司“Advanced RISC Machines,ARM”,中文字面意思 就是“高级精简指令集机器”,这就是现在大家常说的ARM公司。

成立新公司后的几年,ARM公司业绩平平,危机四起。于是ARM决定改变他们的产品策略,他们不再 生产芯片,转而以授权的方式,将芯片设计方案转给其它公司。正是ARM的这种授权模式,极大地降低了 自身的研发成本和研发风险。它以风险共担、利益共享的模式,形成了一个以ARM为核心的生态圈,使得 低成本创新成为可能。

随后,德州仪器(Texas Instruments,TI)、意法半导体(STMicroelectronics,ST)、恩智浦半导体(NXP Semiconductors,NXP)等半导体芯片厂商,相继购买ARM授权,然后根据自身行业需求,设计不同的外设接 口的芯片。

由上总结,ARM具有以下三种含义:

  1. ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器;

  2. ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器;

  3. ARM是一项技术的名称,即采用RISC的处理器体系结构;

从1985年发布第一个ARM处理器开始,ARM公司不断升级迭代,加入新的指令系统、寄存器组、功能 特性,发展出不同架构。早期的经典ARM处理器,架构命名规则比较混乱,现在这些处理器基本不常见了, 这里就不展开介绍。从ARMv7开始,采用Cortex命名,将整个处理器分为三大类,如图 2.2.2 所示。

  1. 这是现代多用户多进程操作系统(比如Linux、VxWorks)所必须的。该系列适用于高端消费电子 sor),该系列有内存管理单元(Memory Management Uint,MMU),实现虚拟内存,让每个用户进程都拥有自己独立的地址空间, 这是现代多用户多进程操作系统(比如Linux、VxWorks)所必须的。该系列适用于高端消费电子 领域,比如智能手机、平板电脑、智能电视、路由器等;

  2. ARM Cortex-R:实时控制系列。R表示应用程序(Real Time Controller),该系列适用于高性能、高实 时性应用,比如硬盘/固态驱动控制器、企业网络设备、消费电子领域的蓝光播放器、汽车领域的 安全气囊等;

  3. ARM Cortex-M:微控制器系列。M表示应用程序(Microcontroller Processors),该系列适用于低功耗、 高性能且对成本敏感的产品,比如家电产品、物联网、无人机等;

针对不同的应用场景和需求,每个系列还会再细分,比如ARM Cortex-M就再分为ARM Cortex-M0、ARM Cortex-M3、ARM Cortex-M4等,区别如表 2.2.1 所示。

表 2.2.1 Cortex-M 系列处理器区别

STM32 介绍

在2004年,ARM公司推出新一代Cortex内核后,ST公司抓住机遇,在很短的时间内就向市场推出了一 系列的32位微控制器,同时提供基于库的开发模式,加快用户研发周期。STM32就是ST公司基于ARM Cortex-M3内核设计的微控制器,专为高性能、低功耗、低成本场景设计。

STM32如今产品系列非常丰富,主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核 系列MPU,如图 2.2.3 所示。按应用特性分类,可分为无线WB/WL系列、超低功耗L0/L1/L3/L5系列、主流 G0/G4/F0/F1/F3系列、高性能F2/F4/F7/H7系列、全新的MP1系列。

STM32的处理器种类众多,通过了解STM32的命令规范,可以了解整个STM32家族产品,也方便以后 芯片选型,STM32 MCU系列命名规则如图 2.2.4 所示。

以STM32F103ZET6为例,解析STM32芯片命名规范如表 2.2.2 所示。

表 2.2.2 STM32F103ZET6 各部分含义

【总结】

ARM公司售卖Cortex-M系列的授权,意法半导体(STMicroelectronics,ST)购买了该授权,生产了一些列 STM32产品,这些使用ARM技术的处理器,都习惯称为ARM处理器,其中STM32F103ZET6就作为了本手册 配套开发板的处理器。

来源:https://zhuanlan.zhihu.com/p/357398923