STM32与ARM7ARM9ARM11

Posted liht_1634

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32与ARM7ARM9ARM11相关的知识,希望对你有一定的参考价值。

本内容详细介绍了ARM与STM32的关系,STM32与ARM7、ARM9、ARM11的区别,美国芯片巨头英伟达收购ARM资讯。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 目录: 一、STM32与ARM的关系 1、ARM公司 2、意法半导体 3、英伟达欲收购ARM 二、STM32与ARM7ARM9、ARM11的区别 ------------------------------------------------------------------------------------------------------- 一、STM32与ARM的关系 1、ARM公司 英国ARM公司是全球领先的半导体知识产权(IP)提供商,只提供一个芯片设计的Idea,其本身并不靠自有的设计来制造或出售CPU。全世界超过95%的智能手机和平板电脑都采用ARM架构,比如华为麒麟系列处理器、高通骁龙系列处理器、三星猎户座处理器、联发科的天玑系列处理器都是在ARM架构基础上而研发出的芯片ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。在智能机、平板电脑、嵌入控制、多媒体数字等处理器领域拥有主导地位。 该公司主要提供IP核,也就是CPU的内核架构,并不是完整的处理器。然后它将这个核卖给各大半导体公司。为了对付8位机市场, 推出Cortex-M3内核,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器。 STM32是基于ARM内核的一种控制器,是包含与被包含的关系。ARM(STM32)。 ---------------------------------------------------------- 2、意法半导体 意法半导体(ST)集团于1987年成立,是由意大利的SGS微电子公司法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。比如本公司使用的STM32F103VET8、STM32F103C8T6。 一个芯片是由内核和外设构成的,ST公司是造芯片的,但用的是ARM公司的内核再加上自己的外设构成一个完整的STM芯片,所以当然用ST命名。

---------------------------------------------------------- 3、英伟达欲收购ARM 美国芯片巨头英伟达(NVIDIA)斥资400亿美元收购英国半导体知识产权提供商ARM公司,现被推迟到2022年9月。

伟达公司是一家以设计显示芯片和主板芯片组为主的人工智能计算公司,创始人为美籍华人黄仁勋。在全球大部分电脑的主机以及其他电子设备中都会装有英伟达提供的芯片。在企业规模与类别上,英伟达与英特尔、AMD并驾齐驱。

当英伟达与日本软银达成协议后,遭到了高通、华为、微软、谷歌等科技公司的强烈反对。那么问题来了,为什么日本软银可以入股ARM,并且能成为ARM的最大股东,而英伟达却不行呢?原因就是日本软银只是个投资公司,而英伟达是科技互联网公司,还有英伟达与日本软银不同,英伟达要400亿美元全资收购ARM,这就会让ARM由英国公司变成美国公司,一旦英伟达收购了ARM,那么就会预示着英伟达可以直接掌握着ARM框架,高通、华为等科技公司都要看英伟达的脸色行事,一旦英伟达看哪一个公司不顺眼,那么断开ARM框架服务的可能性也是有的。

ARM被英伟达收购,对我们国内科技公司的影响更是弊大于利,ARM作为英国科技公司,那么还可以绕开美国对我国国内科技公司软硬件服务与设备的断供。一旦ARM成为了美国公司,那么美国就有可能让英伟达旗下的ARM禁止为我国的科技互联网公司提供ARM框架服务,这样会对我国国内的科技互联网公司造成很大的影响,损失也会很大。 ------------------------------------------------------------------------------------------------------- 二、STM32与ARM7、ARM9、ARM11的区别 STM32外设丰富,没有MMU(内存管理单元)只能叫做MCU(微控制器),可以上ucos等小型系统。ARM9外设不够丰富,有mmu,可以上Linux。如果想上安卓,至少ARM11以上才比较合适。 ARM7是ARM公司推出的以V4指令集设计出来的ARM核,基于ARM7可以生产出很多CPU芯片,其代表的芯片有s3c44b0等; ARM9、ARM11是嵌入式CPU(处理器),不同于STM32与ARM7。 ARM9是ARM公司推出的以V5指令集设计出来的ARM核,基于ARM9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。还有TI啊,ATMEL啊,高通啊都基于ARM9推出了自己的CPU芯片。 STM32是就是基于Cortex-M3这个核生产的CPU。STM32是CM3构架的,是ARM取代ARM7的。主要还是前后台编程,也可以挂μcos系统。在学习ARM9之前接触STM32会有些帮助,但不是特别多。ARM9主要是挂系统能力强一些,而且和以前的编程习惯完全不一样。 到了ARM v7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。
所以看上去ARM7跟Cortex-M很像,因为他们都是MCU,但确是不同代、不同架构的MCU(Cortex-M比ARM7高了三代!),所以性能也有很大的差距。此外,Cortex-M系列还细分为M0、M3、M4和超低功耗的M0+,用户依据成本、性能、功耗等因素来选择芯片。
ARM9、ARM11是哈佛结构,所以性能要高一点。ARM9和ARM11大多带内存管理器,跑操作系统好一点,ARM7适合裸奔。不跑操作系统,价格低一点的:ARM7、cortex-M3等等。性价比高,可跑也可不跑操作系统的:ARM9、Cortex-Rx等等。性能高的,通常要跑操作系统的:ARM10、ARM11、Cortex-A8等等。成熟的ARM7、ARM9、ARM11。发展趋势:Cortex-A、Cortex-R、Cortex-M。 2410和2440都是三星公司生产的基于ARM9内核的芯,资源上相差不大,2440多了camara接口,速度要更快一些。上边讲的版本是指内核版本,而各个公司出的发行号又各有不同。比如三星的2440,ATMEL的9260.就好比Linux的内核版本号与红帽子的发行号不一样是一个道理。 ARM9一般是有MMU的,ARM9940T只有MPU,不是一个完整的MMU。ARM11当然也有MMU的。 这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX、WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX、WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。 下面两个图:架构一目了然。

 

在从ARM7到ARM9、ARM11的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9、ARM11能够地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。 下面图是一些特征比较:

对于ARM嵌入式的初学者,建议用ARM9开发板。 首先,从功能上来说,ARM11要比ARM9强一些,但是性能优异并不代表适合初学者。对于初学者来说ARM11的有些功能是冗余。其次,学习ARM9或者ARM11就在所难免学习其所支持的操作系统Linux(ARM11可以支持android)。 目前,市面上ARM9的开发版的价格要比ARM11低很多,而两者都可以运行Linux操作系统。并且ARM9开发板的资料和教学视频也更多一些。jz2440+韦东山系列教学视频,mini2440+国嵌视频都是不错的选择。 最后,学习ARM9,可以按Linux应用开发、驱动开发顺序学习。如果想学习Android系统开发,可以学完ARM9再学习ARM11开发板下的安卓系统开发。因为安卓系统就是Linux内核+libc库用Java封装而成。 ARM9是比较成熟的系列,现在很多成熟的产品都是用ARM9开发的。这个学好了,以后的系列自学都会容易一些,因为ARM系列架构都是一样的。所谓“师傅领进门,修行在自身”,学会用一种处理器,掌握学习方法,其他的也一样。 如果有单片机基础,但是没有玩过ARM,建议学习STM32,甚至说没有玩过单片机想入门的也可以选择STM32,因为STM32例程丰富,资源比较多,市面上成熟的开发板也比较多,而且基本价格都在300以内。 -------------------------------------------------------------------------------------------------------

STM32CubedMX 下载与安装

 

§01 STM32CubeMX


一、安装版本

STM32CubeMX是ST公司对于其MCU进行模组配置以及生成C语言工程文件的工具。

在2015年安装使用的STM32CubeMX版本。

▲ 图1.0 早期安装的版本

现在在官网可以看到现在的版本已经升级到 6.30。所以需要对于软件进行升级。

▲ 图1.1 下载不同的OS版本

二、软件升级

在旧版本中存在升级过程,但是直接使用升级过程发现下载的文件都无法进行安装。提示:

stm32cube_fw_f2xxxx(MD5 file checksnum is not good)

▲ 图1.2 软件更新界面

▲ 图1.3 安装过程中出现的错误

三、下载最新版本

根据前面下载页面的提示,下载最新的STM32CubeMX的最新版本。由于它需要通过EMAIL验证注册信息,所以现在还需要在等待接收到的邮件完成验证过程。

以上是关于STM32与ARM7ARM9ARM11的主要内容,如果未能解决你的问题,请参考以下文章

玩转传感器——DHT11温湿度传感器(STM32版)

STM32实例——基于STM32开发板实现传感数据采集-DHT11温湿度采集

11-CubeMx+Keil+Proteus仿真STM32 -串口单字节通信

CAN总线如何与STM32中的HAL一起工作?

STM32实例——基于STM32开发板实现传感数据采集-DHT11温湿度采集

STM32实例——基于STM32开发板实现传感数据采集-DHT11温湿度采集