ARM 与 STM32 的关系

ARM介绍:

总结 具有以下三种含义:

  1. ARM是一家全球半导体行业技术领先的公司,主要业务是设计RISC嵌入式处理器。
  2. ARM是一类微处理器芯片或产品的统称,即所有采用ARM公司提供方案开发的RISC处理器。
  3. ARM是一项技术的名称,即采用RISC的处理器体系结构。

ARM公司发展史(图片由百问网提供支持)

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

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

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

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

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

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

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

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

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

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

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

STM32 介绍

  • 在2004年,ARM公司推出新一代Cortex内核后,ST公司抓住机遇,在很短的时间内就向市场推出了一系列的32位微控制器,同时提供基于库的开发模式,加快用户研发周期。STM32就是ST公司基于ARM Cortex-M系列内核设计的微控制器,专为高性能、低功耗、低成本场景设计。
  • STM32如今产品系列非常丰富,主要为ARM Cortex-M内核系列MCU,也开始涉及ARM Cortex-A内核系列MPU,按应用特性分类,可分为无线WB/WL系列、超低功耗L0/L1/L3/L5系列、主流G0/G4/F0/F1/F3系列、高性能F2/F4/F7/H7系列、全新的MP1系列。
  • STM32的处理器种类众多,通过了解STM32的命令规范,可以了解整个STM32家族产品,也方便以后芯 片选型,STM32MCU系列命名规则。
    STM32 芯片命名规则 仅适用于 MCU(图片来源百问网)

总结:

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

内容来源百问网。

ARM 与 STM32 的关系相关推荐

  1. STM32——ARM与STM32之间的联系

    ARM与STM32之间的联系 stm32是基于ARM内核的一种控制器,是包含与被包含的关系. ARM(STM32)

  2. 二、IAR for ARM中STM32项目创建及其启动文件分析

    IAR for ARM STM32F10X官方固件库: 链接: https://pan.baidu.com/s/1U6vfGqp9IhhkvVuDXcxTtQ 提取码: 9mcx IAR for AR ...

  3. JFlash ARM对stm32程序的读取和烧录

    本篇文章主要是记录一下JFlash ARM 的相关使用和操作步骤,读取程序说不上破解,这只是在没有任何加密情况下对Flash的读写罢了! 在我们装了JLINK驱动后再根目录下找到JFlash ARM ...

  4. ARM 编译选项的默认关系 001

    在编译系统移植的时候,不同的编译器的配置经常因为配置的系统硬件不同而需要跳转. 例如从cmake系统到gyp系统,有时候一些宏定义的编译器内部默认的,通过编译选项才能修改,尤其带"__xx& ...

  5. 【ARM】STM32内置DFU的使用

    所有STM32系列芯片都自带ISP功能,进入ISP的方式就是BOOT0置1,然后上电或复位,这时候芯片从系统存储区启动,进入ISP功能,可以使用串口0进行软件烧写. STM32F2/3/4系列芯片不仅 ...

  6. 什么是ARM,STM32?

  7. STM32基础知识点

    文章目录 基础 1.GPIO的工作模式有几种? 2.上拉/下拉的作用? 3.按键为什么要消抖? 4.外部中断和普通按键检测的区别 5. STM32哪些IO口可以配置外部中断,如果答出,同时多少个(16 ...

  8. stm32的存储器结构

    https://blog.csdn.net/qq_33114231/article/details/78658465 首页 博客 学院 下载 图文课 论坛 APP CSDNCSDN学院 问答 商城 V ...

  9. 《嵌入式系统》知识总结2:Cortex-M3处理器和STM32

    Cortex处理器分类 Cortex-A(应用)处理器,Cortex-R(实时)处理器,Cortex-M(微控制器)处理器...等 CM3内核优点 1. 高性能Cortex-M内核 • 采用ARM公司 ...

  10. ARM指令集 VS Thumb指令集

    1 thumb指令集概述 为兼容数据总线宽度为16位的应用系统,ARM体系结构除了支持执行效率很高的32位ARM指令集以外,同时支持16位的Thumb指令集. Thumb指令集是ARM指令集的一个子集 ...

最新文章

  1. 单元测试:使用mocha和should.js搭建nodejs的单元测试
  2. Python中numpy库unique函数解析
  3. OneAlert 入门(一)——事件流
  4. 新年图书整理和相关的产品
  5. 音视频技术开发周刊 67期
  6. 更换ubuntu的root的默认python版本
  7. [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店...
  8. #js#简单的在线计算器
  9. 线性存储(链表存储)
  10. 鲲鹏云实验-Python+Jupyter机器学习基础环境
  11. Java程序实现密钥库的维护
  12. PDE10 wave equation: d'Alembert's formula
  13. redhat linux6.5下修改网卡名称
  14. C++ —— string函数
  15. s081-2020 Lab4 traps
  16. 在页眉插入横线或下划线
  17. thon3爬虫之urllib携带cookie爬取网页的方法
  18. 全能修图工具:Pixelmator Pro for Mac
  19. 服务器磁盘阵列做win7系统,win7 X64 中RIAD0的磁盘阵列怎么组建
  20. 微软sus服务器搭建,规划和部署 Exchange Server

热门文章

  1. java发送邮件代码
  2. 大物实验-直接测量量不确定度计算器 开发备忘录
  3. 南阳理工acm括号配对问题
  4. 声学计算机软件,常用声学仿真软件汇总
  5. Tableau Desktop Pro中文破解版
  6. ubuntu上常用的软件安装
  7. MAC安装linux双系统
  8. OpenGL超级宝典(第7版)之清单的初始环境配置VS2019
  9. 免费网站推广,网站推广的方法
  10. 神经网络仿真实验matlab,神经网络及其matlab实现