ARM公司和ST公司的关系

这里要从一块芯片的生产说起,比如我们要生成一款芯片,我们可以自己涉及内核,涉及好了之后就叫XXX架构芯片,但是一般情况下不会这么做,因为设计内核十分复杂,我们可以向出售内核的公司购买内核来使用即可。

目前市面上主流的内核有ARM架构内核对应“精简指令集”和x86架构内核对应“复杂指令集”。

为什么架构决定了指令集?因为设计架构的本质就是搭建一些逻辑电路,这些电路决定了遇到特定的二进制数据(指令),就执行相应的操作。

这里以ARM指令集为例,mov r0, r1 将r1寄存器中的数据读到r0寄存器中,STM32芯片看到的就是一串长度为4字节的二进制数据,内核中的“门电路”会将这串二进制数据解析并进行一连串的操作(将r1寄存器中的数据读到r0寄存器中),所以内核的架构就决定了指令集,越复杂的内核支持的指令集就越多,并且一条指令能处理的事情就越多。

指令集是不是越复杂越好?其实并不是这样,复杂指令集带来了一些的问题:功耗太大、发热量大、80%指令不常用等等问题,所以我们要根据芯片的用途来权衡采用什么内核。

这里说一个鲲鹏服务器的案例:鲲鹏服务器采用的就是基于ARM架构的CPU,这样做的原因:

1、ARM指令集在鲲鹏所处的领域完全够用,即使需要处理一个arm指令不支持的操作,只需将多条指令一起指向就可以完成该操作。

2、x86架构的CPU随着核心内的门电路越来越多,因为工艺的问题和散热的问题等,慢慢的达不到了“摩尔定律”,所以采用ARM架构的CPU并且用平行运算的“众”核思想可以基于沿着“摩尔定律”走。

3、学术研究发现了复杂指令集中有80%的指令都不太常用,所以用精简指令集不会造成浪费。

4、华为有ARMv8的永久授权。

ARM架构

Arm架构由ARM公司设计并提供授权,其对应指令集为“精简指令集(RISC)”,我们的手机、智能电视等产品所采用的主控多半都是arm架构内核的。

X86架构

X86架构由Intel公司设计,具有代表的产品就是我们电脑中使用的i5、i7等等CPU,其对应指令集为复杂指令集,这意味着一条复杂指令集中的指令可以完成多条精简指令集才能完成的操作,但是也面临很多问题。

ARM公司

ARM公司是一家通过出售arm内核授权盈利的公司,自己从不生成芯片,他将内核的设计图等等资料提供给购买了内核授权的公司,让其自己去二次开发并生产芯片。下图为arm公司设计的部分:

其中常见的有NVIC中断控制器,内核包括了r0-r15寄存器、pc寄存器等等,所以我们要查询上图中给出的内核相关外设的信息需要去查阅arm公司提供的参考手册,例如《Arm cortex-M3参考手册》。

ST公司

ST公司向arm公司购买了arm内核的授权,这里举个例子:stm32f103的cortex-m3内核就是一个授权,st公司将购买来的arm内核的设计进行二次开发。

下图为st公司二次开发设计出来的部分:

红框为ARM内核也就是arm公司设计的,其余部分都是st公司二次开发设计出来的,最终被封装到一个黑色的小盒子内并引出引脚供我们使用。常见的内核外部外设有定时器、GPIO控制器、串口等等,如果我们需要了解此类设备就需要查阅st公司提供的参考手册,例如《STM32F103参考手册》。

如何查阅手册

①    确定你要查询的“外设”是内核中的还是内核外的,例如中断控制器(NVIC)就是内核中的,“定时器”就是内核外的。

②    内核中的外设通过查阅ARM公司提供的参考手册

③    内核外的外设通过查阅ST公司提供的参考手册

ARM公司资料下载:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0099c/index.html#

ST公司资料下载:

https://www.st.com/content/st_com/en.html

如果需要下载资料只需自己注册一个对应网站的账号就可以免费下载了,别再去花钱买资料啦。

点击这里→了解更多精彩内容

授人以渔:stm32资料查询技巧相关推荐

  1. 文章4:多功能智能跟随行李箱控制系统设计 | 本科毕业设计 - 【资料搜索技巧+参考资源整合】

    一.资料搜索技巧 1. 搜索引擎: a. 单独搜索引擎 淘宝 知乎 CSND 语雀 B站 微信 CNKI b. 综合搜索引擎 百度 谷歌 2. 搜索关键字: 自动跟随行李箱 a. 跟随为主 自动跟随 ...

  2. 客户资料查询传递数据格式

    客户资料查询传递数据格式 大家好! 客户资料查询字段JSON格式如下(附件为数据文件): [ { "colName":"CUSTTEL", "colT ...

  3. STM32 资料整理贴(更新到10年1月)[转]

    看到9G从QQ群上转的,后来还有没贴完 ,后面还有一大堆 链接地址 http://www.stmsky.com/bbs/viewthread.php?tid=2103&extra=page%3 ...

  4. 我的Git使用-资料查询,名博笔记

    1.首先您要知道什么是GIT 2.然后对其GIT的历史有所了解(吹牛b的时候用得着,如果还不知道 linux 脱袜子 Linus Torvalds  o(︶︿︶)o ) Git 常用资料查询站点. 官 ...

  5. STM32 资料整理贴

    STM32 资料整理贴(更新到10年3月) http://www.stmsky.com/bbs/viewthread.php?tid=2103 很好多资料不错的. 转载于:https://www.cn ...

  6. Python制作吃鸡各数据资料查询助手,带你做理论王者~

    前言 大家早好.午好.晚好吖 ❤ ~ 吃鸡想必大家都玩过了 今天来教大家制作一个资料查询助手 1.我们是不是要去获取这些数据 武器配件 首先:对于 武器一个详情页url地址发送请求, 获取 每个武器的 ...

  7. 助你掌握搜索神器,10个实用的Elasticsearch查询技巧

    前言   Elasticsearch是一个非常流行的搜索引擎,已经成为了许多企业的首选解决方案.然而,我们要想成为一个优秀的程序员,就必须掌握各种查询技巧.本文将向大家介绍10个实用的Elastics ...

  8. MySQL中实用函数及查询技巧

    函数一:CONCAT 使用场景:查询时把多个字段拼接成一个字符串 例       子:select concat('id:',id,',name:',name) from student 解      ...

  9. Oracle 查询技巧与优化(一) 单表查询与排序

    前言 作为一个程序员在写SQL时往往注重结果而忽略了本该应用的技巧和更优性能的选择(之前本人一直也是这样),当公司没有一个DBA(据我了解大多数中小公司都是没有的)为我们做SQL优化时那我们理应将SQ ...

最新文章

  1. uniGUI试用笔记(二)
  2. 中美数据中心产业对比及思考
  3. alpha冲刺day8
  4. php 加密保存mysql_PHP及MYSQL中字符串加密函数
  5. 用代码转换整数规划 max{ } 与 min{ } 形式至代码形式
  6. 两个或多个线程执行完成之后继续执行之后的步骤,CountDownLatch与CyclicBarrier
  7. python-format函数
  8. KitKat带来短信应用的改变
  9. 计算机专业申请phd美国,揭秘美国大学计算机专业PHD申请难度有多大
  10. 串口是怎样传输数据的
  11. 小程序使用腾讯视频插件及插件未授权使用
  12. 账号、密码管理系统 python
  13. 不学c语言能学mysql吗_学C语言难不难?以及简说数据库
  14. 如何查看自己电脑使用第几代内存条?
  15. 华为鸿蒙系统界面清新,华为鸿蒙系统:全新UI界面
  16. c++/c/java数据结构--队列
  17. Anemometer MySQL 【慢查询日志监控平台】(实战)
  18. 电化学传感器使用-电子学角度分析
  19. 【Pytorch】AWSnet论文解读与实验复现
  20. 基于线段的激光雷达单目曲面重建(ICRA2021)

热门文章

  1. Bootstrap 排版引用
  2. before css 旋转_CSS及购物车的制作练习
  3. idea类前面有个j_idea中所有Java类标识变成一个J
  4. python制作软件界面_Python 脚本 GUI 界面生成工具
  5. pb调用键盘钩子的例子_搞不动Vue3.0的源码,先做个API调用师也行(新人踩坑初试)...
  6. jtessboxeditorfx 界面显示不出来_不需要发酵,自制家庭版健康小油条,不会失败的配方...
  7. datagridview 筛选_【Excel】如何用通配符快速筛选到所需信息
  8. conda如何升级pytorch_第一节 PyTorch简介及环境配置
  9. 前端协商缓存强缓存如何使用_http协商缓存与强缓存
  10. mysql数据库连接锁住_锁mysql方法