目录

1.总线的由来

2.STM32/CPU地址映射

3.STM32的外设地址映射表


很多人对总线和地址映射的概念都是一头雾水,但是我们如果知道为何需要总线和地址映射,他们是在什么背景下被衍化出来的,自然而然对此概念就清清楚楚了。

1.总线的由来

我们知道CPU都是通过总线访问外设,例如STM32使用AMBA规范的总线和外设进行交互,那么在总线的概念没有被提出来的时候,外设是怎样被访问的呢?

其实在最早期的时候,还没有总线,CPU设计者会直接把CPU内核和各种接口控制器设计到一起,如果要访问一个硬件,直接在内核里面对各种接口控制器进行操作,从而操作相应的硬件。我们看下图。

后来设计者发现如果每添加一个外设都要修改CPU内核,这样不具有很好的扩展性,为了使得外设的改变(增加、删除、修改)不影响CPU内核架构,衍化出了总线的概念,CPU内核可以通过总线访问各种各样外设,新的外设只需要挂接到总线上,就可被CPU内核访问控制。有了总线,CPU可以用统一的访问方式访问任何外设,实现了CPU内核和外设分开设计和维护。

如下图所示,下图和CPU内核交互的只有地址总线接口、数据总线接口、控制总线接口,这三个接口一个提供地址、一个提供数据,一个提供控制信息(读、写、其他控制信息),所有的外设连接到总线矩阵上。

2.STM32/CPU地址映射

外设怎么知道CPU内核发出的操作是给自己的呢?

其实每一个外设都具有自己的地址空间,当CPU内核通过总线访问外设时,对应地址空间的外设就知道CPU内核是在操作自己(外设被命中),然后外设去操作所连接的硬件。

外设的地址控制怎么分配呢?

答案就是地址映射,地址映射这个过程是在设计芯片的时候就要进行考虑的,地址总线接口如果是32位,则内核可访问的外设空间最大就是4G,芯片设计者为每一个外设会映射一段地址空间,比如GPIOA映射到0x0000000-0x0000FFFF,则CPU在访问0x0000000-0x0000FFFF地址空间时会被GPIOA外设捕获到,至于外设想做什么由外设的硬件设计者来决定。如果地址总线接口如果是64位,则内核可访问外设的地址空间为2^64bit。

3.STM32的外设地址映射表

STM32地址总线接口为32位,则可以访问4Gbit的外设空间,下面为STM32F10X外设地址映射表。有很多还没有被映射的地址空间,ST公司后期可能用来扩展新外设,而扩展过程Cortex内核是不需要进行任何修改的。


1.本文部分素材来源网络,版权归原作者所有,如涉及作品版权问题,请与我联系删除;

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

STM32/CPU总线的由来和地址映射概念相关推荐

  1. STM32的总线AMBA、AHB、APB

    一.总线的简单介绍: 处理器无疑是计算机中最重要的部件,但并不是唯一的部件.一台计算机也需要随机访问存储器(RAM)来存放机器码指令以便让处理器执行.计算机还必须有一些方法使这些指令进入RAM(输入设 ...

  2. STM32 CAN总线通信学习笔记(一)

    STM32 CAN总线通信学习笔记(一) 一.CAN总线简介 CAN 是控制器局域网络(Controller Area Network, CAN)的简称.CAN采用数据块编码的方式,数据块根据帧的类型 ...

  3. 物理/逻辑CPU、Core、Thread等概念

    物理/逻辑CPU.Core.Thread等概念 本篇为自己学习用,转载下.翻译的太好了. differences-between-physical-cpu-vs-logical-cpu-vs-core ...

  4. 使用STM32Cube MX为STM32 CAN总线快速配置上手教程_HAL库_CAN协议_STM32_附波特率计算工具

    使用STM32Cube MX为STM32 CAN总线快速上手教程_HAL库_CAN协议_STM32 前言 博主也是刚接触CAN协议的新手,如有不对的地方欢迎交流 本文旨在使用STM32Cube MX快 ...

  5. FANUC机器人发生SRVO-454 CPU总线失败报警时的解决办法

    FANUC机器人发生SRVO-454 CPU总线失败 报警时的解决办法 原因:放大器内部的CPU总线数据中发生了异常 处理:需要更换伺服放大器 清除报警:需要重新通电 本人碰到过一次,当时的情况是:刚 ...

  6. STM32 CAN总线冲突故障的分析和解决

    现场的STM32 CAN总线设置一共有3个:A.B.C.其中A是发送命令者,C是执行命令者,B是分析命令者.A发送命令,C执行命令后输出信号,B通过分析命令的内容切换继电器通道.以上就是设计初衷. 实 ...

  7. x86 CPU中逻辑地址到物理地址映射过程

    1 段页式内存管理机制 在x86 CPU中,采用了段页式内存管理机制,分段和分页模型. 分页(Paging)机制 逻辑地址由页号和偏移量组成. 分段(Segment)机制 分段允许程序员把存储器看成由 ...

  8. CPU中的寄存器和地址概念

    一般的CPU都是由以下部分组成:运算器.控制器和寄存器. 这些器件之间自然也要相互交换信息,所以他们也是有导线相连的,也就是总线了.但是这个总线是内部总线,而CPU和内存.显卡之类做信息交换的是外部总 ...

  9. 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽......

    外频 外频是由主板为CPU提供的基准时钟频率,一般常见的有100.133.166.200.我们说的FSB(FrontSystemBus)指的是系统前端总线,它是处理器与主板北桥芯片或内存控制集线器之间 ...

最新文章

  1. Exception Handling Best Practices in .NET
  2. pandas 作图 统计_解决pandas 作图无法显示中文的问题
  3. ASP.NET MVC 随笔汇总
  4. CodeForces - 1316B String Modification(找规律)
  5. 一步步使SSH连接您的github仓库
  6. 教育行业的互联网焦虑症
  7. html纵向滚动特效,带视觉差效果的垂直全屏整页滚动特效
  8. 前端学习(3248):react的生命周期getSnapBeforeUpdate举例
  9. 区块链矿池(pool)汇总(不定期更新,欢迎评论区留言)
  10. 好久没弄网站多皮肤了
  11. 两个链表是否相交 + 赛马(分桶)
  12. JMP入门官方文档---发现JMP.pdf---中文版
  13. 堆密度测定的意义_测定颗粒真密度的意义是什么
  14. 程序员需要了解英国文学
  15. Android实现 Eq的频响曲线,可以调节峰值,高低通。曲线为算法实现。
  16. 用css制作网站首页
  17. 《雍正皇帝》文化专有词翻译策略的研究现状(Baker)
  18. syslog 向内存中缓存_内存问题排查手段及相关文件介绍
  19. linux上使用openocd的问题
  20. linux服务器中如何解压分卷文件,Linux解压rar文件(unrar安装和使用,分卷解压)...

热门文章

  1. 如何利用vga接口的显示器做笔记本的副屏
  2. 系列 HTML+JS GAME制作 之 移动消灭-方块
  3. python实现推广小项目
  4. 简易时间计时器的实现
  5. 压缩文件密码破解神器rarcrack
  6. VMware 安装Ubuntu22.04
  7. Linux强制修改root用户密码
  8. 数据分析2021年最实用工具排名前6位出炉
  9. 今天Sapphire来短消息问我“一件有点隐私”的事情,:)
  10. Unity开发2 3D对象的简单操作