当前位置: 首页 > article >正文

记:STM32F4参考手册-存储器和总线架构

STM32F4参考手册-存储器和总线架构

系统架构

主系统由32位多层AHB总线矩阵构成,可实现以下部分部分的互连:

        八条主控总线

                Cortex-M4F内核I总线、D总线和S总线

                DMA1存储器总线

                DMA2存储器总线

                DMA2外设总线

                以太网DMA总线

                USB OTG HS DMA总线

        七条被控总线

                内部Flash ICode总线

                内部Flash DCode总线

                主要部分SRAM1(112KB)

                主要部分SRAM2(16KB)

                主要部分SRAM2(64KB)(仅适用于STM32F42xxx和STM32F43xxx器件)

                AHB1外设(包括AHB-APB总线桥和APB外设)

                AHB2外设

                FSMC

借助总线矩阵,可以实现主控总线到被控总线的访问,这样即使在多个高速外设同时运行期间,系统也可以实现并发访问和高效运行。

总线矩阵:用于主控总线间的访问总裁管理。仲裁采用循环调度算法。

Tips:图中显示,64KB的CCM数据RAM(内核耦合存储器)不属于总线矩阵,只能通过CPU对其进行访问。

S0--I总线:

        用于将Cortex-M4F内核的指令总线连接到总线矩阵。内核通过此总线获取指令。

        此总线访问的对象是包含代码的存储器(内部Flash/SRAM或通过FSMC的外部存储器)。

S1--D总线:

        用于将Cortex-M4F内核的数据总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据,也可通过此总线获取指令(效率低于ICode总线)。

        此总线访问的对象是内部SRAM、APB1外设、APB2外设以及通过FSMC的外部存储器。

S2--S总线:

        用于将Cortex-M4F内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据,也可通过此总线获取指令(效率低于ICode总线)。

        此总线访问的对象是内部SRAM、APB1外设、APB2外设以及通过FSMC的外部存储器。

S3、S4--DMA存储器总线:

        用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来执行存储器数据的传入和传出。

        此总线访问的对象是内部SRAM以及通过FSMC的外部存储器。

S5--DMA外设总线:

        用于将DMA外设主总线接口连接到总线矩阵。DMA通过此总线访问AHB外设或执行存储器间的数据传输。

        此总线访问的对象是内部SRAM、AHB外设、APB1外设、APB2外设以及通过FSMC的外部存储器。

S6--以太网DMA总线:

        用于将以太网DMA主总线接口连接到总线矩阵。以太网DMA通过此总线向存储器存取数据。

        此总线访问的对象是内部SRAM以及通过FSMC的外部存储器。

S7--USB OTG HS DMA总线:

        用于将USB OTG HS DMA主总线接口连接到总线矩阵。USB OTG HS DMA通过此总线向存储器加载/存储数据。

        此总线访问的对象是内部SRAM以及通过FSMC的外部存储器。

AHB/APB总线桥(APB):

借助两个AHB/APB总线桥,可在AHB总线与两个APB总线之间实现完全同步的连接,从而灵活选择外设频率。

每次芯片复位后,所有外设时钟都将关闭(SRAM和Flash接口除外)。使用外设前,必须在RCC_AHBxENR或RCC_APPBxENR寄存器中使能其时钟。

Tips:对APB寄存器执行16位或8位访问时,该访问将转换为32位访问(总线桥将16位或8位数据复制后提供给32位向量)

存储器组织结构

程序存储器、数据存储器、寄存器和I/O端口排列在同一顺序的4GB地址空间内。

各字节按小端格式在存储器中编码。字中编号最低的字节被视为该字的最低有效字节,而编号最高的字节被视为最高有效字节。

可寻址的存储空间分为8个主要块,每个块为512MB。

未分配给片上存储器和外设的所有存储区域均视为保留区。


http://www.kler.cn/a/233017.html

相关文章:

  • RabbitMQ高效的消息队列中间件原理及实践
  • MySQL的SQL书写顺序和执行顺序
  • 三、损失函数
  • 2024年11月12日Github流行趋势
  • 探索Python的HTTP利器:Requests库的神秘面纱
  • Leecode热题100-35.搜索插入位置
  • Android:Android Studio安装及环境配置
  • (52)只出现一次的数字III
  • Python学习之路-Tornado基础:安全应用
  • 探索未来:集成存储器计算(IMC)与深度神经网络(DNN)的机遇与挑战
  • 「递归算法」:子集(两种解法)
  • 泛娱乐社交出海洞察,Flat Ads解锁海外增长新思路
  • 创建一个VUE项目(vue2和vue3)
  • cleanmymacX和腾讯柠檬哪个好用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.6节(默认参数)
  • Java图形化界面编程—— 基本组件和对话框 笔记
  • Spring IoC容器详解
  • 在centos7中利用pybind11构建C++的动态库供python调用
  • Rust-AI todo list 开发体验
  • 第十七篇【传奇开心果系列】Python的OpenCV库技术点案例示例:自适应阈值二值化处理图像提取文字
  • Matlab绘图经典代码大全:条形图、极坐标图、玫瑰图、填充图、饼状图、三维网格云图、等高线图、透视图、消隐图、投影图、三维曲线图、函数图、彗星图
  • C#面:什么是Code-Behind技术
  • HiveSQL——共同使用ip的用户检测问题【自关联问题】
  • 【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
  • 语义分割任务的准确率计算:基于PyTorch实现
  • vscode +git +gitee 文件管理