学习STM32(一)之芯片类型,内核架构的关系

2023-11-05

原文:https://blog.csdn.net/qlexcel/article/details/79299970

ARM内核和架构都是什么意思,它们到底是什么关系?

1.ARM内核:从ARM7、ARM9到Cortex-A7、A8、A9、A12、A15再到Cortex-A53、A57等,总之不同版本 ARM 有不同的想法。比如为高速度设计的Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是内核,后者是指令集的架构。

2.ARM的架构都是基于RISC指令集而架构的,而其内核只是实现这一指令集的硬件架构的基础,Thumb-2指令集架构(ISA)的子集,包含所有基本的16位 和32位Thumb-2指令、 、哈佛处理器架构,在加载/存储数据的同时能够执行指令取指,带分支预测的三级流水线等。

3.好比你盖房子,刚开始因为水平低流行盖平房,这就是一种架构(V5T),然后这种平房架构你可以设计出一款独立卫生间的款式, 这叫ARM7内核。 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖,接着过一段时间,有人觉得光独立卫生间还不够啊, 我还想有个小院子! 好吧,那ARM就满足你们的要求,出个带小院子的款式(ARM9)。

又过了很久, 这种平房的架构就随着大伙的需求一直改啊改啊,后来经过ARM研究发现: 现在大伙盖房子的能力duang duang直升啊(包括工艺、设计能力、时钟主频),只盖这种平房施展不开啊! 好吧,ARM为了不让这帮设计的人闲着,就推出一种二三层楼房的样式, 这因为跟平房设计结构完全不一样嘛, 那就叫一种新的架构(ARMv6),同样这种楼房样式ARM也为大家准备了带游泳池的和带车库的款式(ARM11),好吧继续改啊改啊, 改到后来大家已经开始有能力盖十层以上的大楼了。 ARM一如既往地出了新的款式(ARMv7架构), 这时ARM觉得以前名字都太土鳖了, 什么ARM5、 ARM6、 ARM7—又难听又难记, 我要取个看起来牛逼的名字, 咱至少也算个能设计摩天大楼的主儿了, 于是后面的内核都叫Cortex。

改名只是一部分, 随着这个架构出来后, ARM发现以前用咱们图纸盖出的楼也就做个民宅, 民宅图个啥? 实惠嘛(功耗低)。 现在不一样了,现在咱的图纸盖得楼不仅可以做民宅,还可以做军事基地、 还可以做高档写字楼, 以前这些高级功能的楼房可是只有小英(英特尔)才能设计出来的啊!为了满足这些不同的需求, ARM把这个架构设计出来的款式分成3个系列(M系列、R系列、A系列)。

M系列是为民宅设计的, 因为老百姓图实惠嘛, 这种设计就设计个十层左右(功耗低); R系列是为军事基地设计的, 这种楼设计的也不高— 十层左右吧, 但是关键是要对特殊情况要有快速反应的能力(中断快); 最后A系列是给商业大佬用的, 那当然是要高端大气上档次, 就是要性能高,各种LED灯灯光秀啊都给我上。

 

arm7是arm公司推出的以V4指令集设计出来的arm核,基于arm7可以生产出很多CPU芯片,其代表的芯片有s3c44b0等;
arm9是arm公司推出的以V5指令集设计出来的arm核,基于arm9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。还有TI啊,ATMEL啊,高通啊都基于arm9推出了自己的CPU芯片。
cortex是arm公司推出的以V7指令集设计出来的一系列arm核,其中包括Cortex-M1,Cortex-M0,Cortex-M4,包括你说的Cortex-M3,还有高端的,Cortex-A8,Cortx-A9,Cortex-A15等;
基于Cortex其它公司可以生产自己的CPU芯片,如你说的ST公司生产的STM32是就是基于Cortex-M3这个核生产的CPU。现在高端手机中的CPU一般都是基于Cortex-A8,Cortex-A9生产的。
以下是简单的arm公司arm核的发展
arm7 使用V4指令集
arm9 使用V5指令集
arm10 使用V5指令集
arm11 使用V6指令集
cortex 使用V7指令集

 

 

 

原文:https://blog.csdn.net/zhizhuan3361/article/details/80392466

 

问题1:单片机和CPU的区别
在嵌入式领域ARM芯片和CPU有什么区别呢?其实随着嵌入式科技的不断发展,单片机(像ARM芯片)和CPU的界限越来越模糊,我们暂且可以认为ARM芯片就是一个CPU,或者暂且认为单片机就相当于一个CPU。
问题2:什么是ARM芯片
凡是采用ARM内核的芯片(或者凡是采用ARM内核的CPU)都是ARM芯片。例如高通的OMAP36X0系列处理器(Droid 2和Droid X用的OMAP3630),采用的就是ARM内核,所以在概念上我们也可以将其称为ARM芯片
问题3:什么是ARM内核
所谓内核,就是CPU里面实现运算的核心,我们也可以将内核称之为CPU(注意,该CPU是真正意义上的CPU,因为它实现了数据的运算与处理)。而问题一中所说的单片机和芯片相当于一个CPU只是指宏观意义上的CPU。ARM内核只是一个统称,它有以下几个系列:ARM7,ARM9,ARM11,CORTEX等几个内核家族,每个内核家族都有不同的内核种类,比如CORTEX内核家族就有:Cortex-A8内核、Cortex-A9内核、Cortex-R4内核、Cortex-M0内核、Cortex-M1、Cortex-M3、Cortex-M4内核等,目前使用最广的STM32系列芯片使用的就是Cortex-M3内核。具体内核家族分类见:http://hardware.mydrivers.com/2/223/223488_all.htm
问题4:什么是架构
片面上讲,我们可以将架构理解为内核所使用的指令集。例如:用于高端的(手机等)Cortex-A8,Cortex-A9等内核用的是ARMv7-A架构,或者说用的是ARMv7-A指令集架构,我们常用到的STM32的Cortex-M3内核用到的是ARMv7-M架构。
问题5:什么是指令集
所谓指令集就是一整套底层指令的统称。分为RISC(简单指令集)和CISC(复杂指令集),相比较而言RISC指令集的指令格式统一,种类比较少,寻址方式也比复杂指令集少,而CISC指令集的效率比较高。拿STM32系列芯片使用的ARMv7指令集来讲,ARMv7意思是ARM的第七个版本的指令,采用的RISC。
 

CPU的中间就是我们平时称作核心芯片或CPU内核的地方,这颗由单晶硅做成的芯片可以说是电脑的大脑了,所有的计算、接受/存储命令、处理数据都是在这指甲盖大小的地方进行的。

目前绝大多数CPU都采用了一种翻转内核的封装形式,也就是说平时我们所看到的CPU内核其实是这颗硅芯片的底部,它是翻转后封装在陶瓷电路基板上的,这样的好处是能够使CPU内核直接与散热装置接触。这种技术也被使用在当今绝大多数的CPU上。而CPU核心的另一面,也就是被盖在陶瓷电路基板下面的那面要和外界的电路相连接。现在的CPU都有以千万计算的晶体管,它们都要连到外面的电路上,而连接的方法则是将每若干个晶体管焊上一根导线连到外电路上。例如Duron核心上面需要焊上3000条导线,而奔腾4的数量为5000条,用于服务器的64位处理器Itanium则达到了7500条。这么小的芯片上要安放这么多的焊点,这些焊点必须非常的小,设计起来也要非常的小心。由于所有的计算都要在很小的芯片上进行,所以CPU内核会散发出大量的热,核心内部温度可以达到上百度,而表面温度也会有数十度,一旦温度过高,就会造成CPU运行不正常甚至烧毁,因此很多电脑书籍或者杂志都会常常强调对CPU散热的重要性。CPU还应有确定的主板,如:i7的CPU就只能用专用的主板。 核心(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有科学的布局 
存储在Active Directory 中的对象类别和属性的描述。对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。 
可以动态更新的Active Directory 架构。例如,应用程序可以使用新的属性和类扩展该架构,并能立刻使用该扩展。通过在Active Directory 中创建或修改存储在 Active Directory 中的架构对象来完成架构的更新。与Active Directory 中的所有对象一样,架构对象能访问控制列表,因此只有授权的用户才可以更改架构。
 

 

原文: https://blog.csdn.net/ben392797097/article/details/44257307

本人这次学习的STM32芯片型号为  STM32F407ZET6  --->Cortex-M4内核

STM32系列单片机命名规则

示例:

从上面的料号可以看出以下信息:

ST品牌ARM Cortex-Mx系列内核32位超值型MCU,LQFP -48封装 闪存容量32KB 温度范围-40℃-85℃;

 

1.产品系列:

STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU;

2.产品类型: F:通用快闪(Flash Memory);

L:低电压(1.65~3.6V);F类型中F0xx和 F1xx系列为2.0~3.6V; F2xx和F4xx系列为1.8~3.6V;W:无线系统芯片,开发版.

3.产品子系列:

050:ARM Cortex-M0内核;051:ARM Cortex-M0内核;100:ARM Cortex-M3内核,超值型; 101:ARM Cortex-M3内核,基本型; 102:ARM Cortex-M3内核,USB基本型; 103:ARM Cortex-M3内核,增强型; 105:ARM Cortex-M3内核,USB互联网型; 107:ARM Cortex-M3内核,USB互联网型、以太网型; 108:ARM Cortex-M3内核,IEEE802.15.4标准; 151:ARM Cortex-M3内核,不带LCD; 152/162:ARM Cortex-M3内核,带LCD;

205/207:ARM Cortex-M3内核,不加密模块.(备注:150DMIPS,高达1MB闪存/128+4KB RAM,USB OTG HS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头;)

215/217:ARM Cortex-M3内核,加密模块。(备注:150DMIPS,高达1MB闪存/128+4KB RAM,USB OTG HS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头;)

405/407:ARM Cortex-M4内核,不加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KB RAM,USB OTG HS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头);

415/417:ARM Cortex-M4内核,加密模块。(备注:MCU+FPU,210DMIPS,高达1MB闪存/192+4KB RAM,USB OTG HS/FS,以太网,17个TIM,3个ADC,15个通信外设接口和摄像头);

4.管脚数:

F:20PIN;G:28PIN;K:32PIN;T:36PIN;H:40PIN;C:48PIN;U:63PIN;R:64PIN;O:90PIN;V:100PINQ:132PIN;Z:144PIN; I:176PIN;

5. Flash存存容量:

4:16KB flash;(小容量); 6:32KB flash;(小容量);8:64KB flash;(中容量);B:128KB flash;(中容量);C:256KB flash;(大容量);D:384KB flash;(大容量);E:512KB flash;(大容量);F:768KB flash;(大容量);G:1MKB flash;(大容量)

6.封装:

T:LQFP;H:BGA;U:VFQFPN;Y:WLCSP/ WLCSP64;

7.温度范围:

6:-40℃-85℃;(工业级); 7:-40℃-105℃;(工业级)

8.内部代码:

“A” or blank; A:48/32脚封装;Blank:28/20脚封装;

9.包装方式:

TR:带卷; XXX:盘装;D:电压范围1.65V – 3.6V且BOR无使能;无特性:电压范围1.8V – 3.6V且BOR使能;


 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习STM32(一)之芯片类型,内核架构的关系 的相关文章

  • K和KB的区别

    来源 综合自己和网上的观点 问题1 K与KB之间有什么区别 我在做一道解时 就是 某计算机字长16位 它的存储容量是1MB 按字编址 这经的寻址范围是 A 512K B 1M C 512KB 答案给的是A 我很不解 为什么512K与512K
  • (error) CROSSSLOT Keys in request don‘t hash to the same slot 解决方法

    Redis 哈希槽基本概念 哈希槽 hash slot 是来自Redis Cluster的概念 但在各种集群方案都有使用 哈希槽是一个key的集合 Redis集群共有16384个哈希槽 每个key通过CRC16散列然后对16384进行取模来
  • Python opencv 机器学习 5.knn pca降维 ocr识别数字 mnist数据集

    coding utf 8 from numpy import import numpy as np import struct import matplotlib pyplot as plt import operator 定义一个全局特征
  • 轻松获取在线媒体:视频下载工具推荐

    ytdl org youtube dl Stars 121 0k License Unlicense youtube dl 一个命令行程序 可以从YouTube com和其他视频网站下载视频 基于 Python 实现 你可以在Unix Wi
  • 上班之路 华为OD真题 200

    public class Main public static char map 地图 public static int t 转弯次数 public static int c 路障个数 public static int n 地图行数 p
  • Android 项目必备(十一)--> 轮询操作

    文章目录 前言 实战 前言 什么叫轮询请求 简单理解就是 App 端每隔一定的时间重复请求的操作就叫做轮询请求 比如 App 端每隔一段时间上报一次定位信息 App 端每隔一段时间拉去一次用户状态等 这些应该都是轮询请求 为何不用长连接代替
  • ibm服务器开机后显示器闪烁,IBM E50彩色显示器,开机后电源指示灯闪烁,机内有“咔嗒”声,黑屏...

    经观察发现 咔嗒 声是消磁继电器断开 闭合的声音 经测量 该继电器13V供电电压时有时无 该故障现象特别 不易判断 但从屏幕无显示这一故障现象入手 可初步判定故障范围可能在电源电路和行扫描电路 首先 不开机直观检查相关电路 未见异常 然后测
  • 由bibtex生成引用文献字符串

    word 文档写引用文献 用 mendeley 的插件生成的效果似乎一般 用法见 1 2 而且自己改格式的那个网页令人火大 可能我网速问题 用 python 写了个脚本 通过解析 bibtex 来生成 格式自编 项目页见 4 Code 目前
  • C++的函数_默认参数详解

    案例 int func int a int b 10 return a b int main func 10 return 0 注意事项 1 实现的函数中参数有默认参数 调用时如再传入 默认参数的值被替换为传入的值 func 10 20 r
  • vue报错

    启动vue项目时报如下错误 可是我的代码里并没有matched 后来才发现是路由引入错误 在 main js 文件中 上面的 import router from router 这个语句的前面 router 中的 R 必须的小写 不然就会出
  • 《substrate 快速入门与开发实战》

    视频地址 https www bilibili com video BV1C4411U7Rv substrate的升级过程 编写的runtime代码 gt 编译后 得到runtime的wasm二进制文件 gt 通过链上的治理模块发送升级ru
  • 关于nodejs中使用fluent-ffmpeg模块、ffmpeg工具的使用心得

    类人猿Blog 欢迎来到我的博客 您好 这是本人第一次写博客 请多多指教 nodejs中使用 fluent ffmpeg 详细方法和系统配置 适应于 windows和 linux 特别是在 redhat6 x中得以验证通过 简介 我们都知道
  • 对于c++中模板函数的一点体会

    何为模板函数 从字面上就可以看出来模板函数必须具备通用性 举个简单却很实用的例子 交换两个值的函数Swap 交换两个字符型void Swap char a char b 交换两个整型void Swap int a int b 交换两个浮点型
  • 【RabbitMQ教程】“Hello World”工作队列模式

    目录 前言 Hello World 工作队列模式介绍 消息模型 入门案例代码示例 自动ACK 消息确认机制 自动ACK存在的问题 演示手动ACK 前言 1 将 Hello World工作队列模式 单独抽出来细讲 目的是借助这个模式好好讲一下
  • PostgreSQL出现死锁该如何解决

    目录 什么是数据库死锁 定位死锁 死锁可能原因及解决办法 1 索引使用不当导致的死锁问题 2 不同事务之间的访问顺序问题 避免死锁的建议 附 数据库中常见的死锁原因与解决方案 总结 什么是数据库死锁 在操作系统领域当中 死锁指的是两个或者两
  • linux下飞鸽传书,ipmsg的安装(支持中文名文件传输,以及文件夹传输)

    一 下载 飞鸽 传书 http www ipmsg org archive g2ipmsg 0 9 5 tar gz 二 解压 tar zxvf g2ipmsg 0 9 5 tar gz cd g2ipmsg 0 9 5 三 修改参数 使它
  • linux 固定 ip 地址

    文章目录 查看当前ip 修改配置文件 查看当前ip ip addr ifconfig 修改配置文件 vim etc sysconfig network scripts ifcfg ens33 原来是这样的 TYPE Ethernet PRO
  • 软件测试-面试题

    1 什么是需求文档测试 测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现 2 什么是设计文档测试 测试设计是否符合全部需求以及设计是否合理 3 什么是 测试 Alpha测试 测试 是由一个用户在开发环境下进行的测试 也可以是公司内部的
  • SpringBoot 集成Redisson 提示:java.lang.ClassNotFoundException: **.redis.connection.ReactiveRedisConnec

    SpringBoot 集成Redisson 提示如下错误信息 Caused by java lang ClassNotFoundException org springframework data redis connection Reac
  • Vue安装less报错

    使用npm安装less 指定版本为5 npm install save less less loader 5 报错 npm ERR code ERESOLVE npm ERR ERESOLVE unable to resolve depen

随机推荐

  • 渗透测试面试题--日更(1-9day)

    day one 1 拿到一个待检测的web站 渗透测试思路 答 1 信息收集 获取域名的whois信息 获取注册者的邮箱姓名电话等 查服务器的旁站以及子域名站点 因为主站一般比较难 所以可以先看看旁站有没有通用cms或者其他漏洞 查看服务器
  • 华为OD机试真题-单词接龙-2023年OD统一考试(B卷)

    题目描述 单词接龙的规则是 可用于接龙的单词首字母必须要前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等 则取字典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成单词数组 并指
  • 基于高德地图API — 绘制热力图初尝试

    初次了解高德地图 并尝试在地图的基础上绘制热力图 官方传送链接高德开放平台 前提准备 点击注册开发者账号 登录成功后 点击左侧菜单栏 应用管理 如图所示 点击 添加 获取API 服务平台 一项请选择 Web 端 JSAPI 回到页面 引入文
  • 基于DAC0832的信号发生器设计与实现(源码+原理图+PCB)

    摘要 本课题设计了一个基于DAC0832的信号发生器 使之输出不同频率的正弦波 三角波 锯齿波和方波 并通过按键切换不同的波形 也可以改变频率以及频率变化的步进 本方案选择了DAC0832作为核心芯片 并与51单片机结合 设计出一款建议的高
  • 共识算法1--工作量证明机制简介及算法实现

    共识算法1 工作量证明机制简介及算法实现 所谓 共识机制 是通过特殊节点的投票 在很短的时间内完成对交易的验证和确认 对一笔交易 如果利益不相干的若干个节点能够达成共识 我们就可以认为全网对此也能够达成共识 1 当前 已有多种常见的共识机制
  • 【GO】详解GOROOT和GOPATH

    GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH 作用 存放sdk以外的第三方类库 自己收藏的可复用的代码 目录结构 GOPATH目录约定有三个子目录 3 src存放源代码 比如 g
  • 蚀刻后残留物和光刻胶去除技术

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用PR来阻断部分电路导致PR基本上硬化并且难以去除 在后端线 BEOL 蚀刻中 除低k材料的情况下去除抗蚀剂和残留物的选择性非常具有挑战性 介绍
  • uniapp select 多选选择器封装

    前言 作者想实现的功能类似一个uniapp选择器 但是可以选择多个值 同时又可以单选和全选 在uniapp 的UI框架去找 发现没有类似的 最后在uniapp 的插件市场找到了这个multiple select 里面的功能比较全实现了单选全
  • MySQL 多表连接查询

    交叉连接 特点 又称 笛卡尔乘积 将多张表中的数据行一 一对应连接在一起 结果集的数据行数相当于多张表数据行数 相乘 后的结果 语法格式 select 字段列表 from 表1 表2 表3 where 连接条件1 and 连接条件2 注释
  • Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

    这是个失败的版本 既然记录下来了 就保留下来 总体来说没错 只是可能CUDA版本不合适 可以参考下 一 安装CUDA 1 下载 https developer nvidia com cuda downloads 2 正常安装 出现这个问题
  • Ant Design学习1——概述

    2021SC SDUSC 介绍 Ant Design of React antd 是基于 Ant Design 设计体系的 React UI 组件库 主要用于研发企业级中后台产品 官方简介 蚂蚁集团的企业级产品是一个庞大且复杂的系统 数量多
  • MyEclipse提示过期,MyEclipse Subscription Expired激活方案

    一 错误描述 紧接上文 虽然解决了MyEclipse提示过期问题 但是你会发现出现一行红色提示如下 1 错误日志 Product activation must be completed within 5 days 2 错误说明 产品激活必
  • Windows多显示器编程--VC

    一 Windows中接入多个显示器时 可设置为复制和扩展屏 1 设置为复制屏幕时 多个显示器的分辨率是一样的 位置为0 分辨率值 2 设置为扩展屏幕时 显示器之间的关系比较复杂些 首先Windows系统会识别一个主显示器 这个可以在屏幕分辨
  • 问题总结!常用插件Pytest的测试用例的一些问题

    目录 前言 失败重跑 Pytest rerunfailures 用例执行顺序 Pytest ordering 重复执行 Pytest repeat 多重断言 Pytest assume 前言 Pytest是Python中的一个流行的测试框架
  • Linux经典书籍推荐

    Linux经典书籍推荐 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的了解linux 另外比较热门的也可以看看 鸟哥的私房菜 等书 偏管理类的书 如果想做server方向的可以找来看看
  • 如何使用 WSL 在 Windows 上安装 Linux-官方流程

    前提条件 安装 WSL 命令 更改默认安装的 Linux 发行版 设置 Linux 用户信息 设置和最佳实践 检查你正在运行的 WSL 版本 从 WSL 1 升级到 WSL 2 使用 WSL 运行多个 Linux 发行版的方法 想体验最新的
  • 刷脸支付服务商推广进程已逐渐深入

    2019年是刷脸支付的商用元年 刷脸支付推广进程已逐渐深入 移动支付领域巨头间的竞争越发激烈 在支付宝与微信支付之后 银联也正式加入 近日 中国银联旗下云闪付APP正式推出刷脸支付服务 目前已经在宁波 长沙 杭州 嘉兴 合肥 广州 武汉七个
  • docker容器里设置中文时区

    本文讨论docker容器里中文时区的问题 总所周知docker hub上的镜像默认都是英文时区的 在国人使用过程当中需要将时区设置成中文 我原来光配置 etc localtime了date显示的时间也对 但是tomcat日志里输出的时间还是
  • git 基本使用

    git和svn的区别 svn的特点是集中式 工程文件全部放在中央服务器的一个唯一库上 管理员对开发者的权限有掌控 每个人都只能拉取和开发属于自己的模块 且提交按照文件进行存储 有网络要求 git的特点是分布式 每个开发者都能把全部工程文件拉
  • 学习STM32(一)之芯片类型,内核架构的关系

    原文 https blog csdn net qlexcel article details 79299970 ARM内核和架构都是什么意思 它们到底是什么关系 1 ARM内核 从ARM7 ARM9到Cortex A7 A8 A9 A12