STM32F10XXX总线架构和存储器组织

发布者:EtherealEssence最新更新时间:2018-06-05 来源: eefocus关键字:STM32F10XXX  总线架构  存储器组织 手机看文章 扫描二维码
随时随地手机看文章

1. 总线架构

以互联网大容量产品为例,整体总线架构如下图:

其中,

DCode,也即D-bus,顾名思义就是数据总线。它通过总线矩阵连接Contex-M3和闪存存储器的数据接口,可用于常量加载(我的理解是RO DATA的访问)和调试访问(如何应用,尚未得知)。

ICode,指令总线,实现Contex-M3和闪存存储器的指令接口的连接,用于程序RO CODE(.text)的读取。

System,系统总线,实现外设总线到总线矩阵的连接。对内置SRAM就是通过系统总线访问的。

DMA总线,连接DMA硬件的AHB主控接口到总线矩阵。

总线矩阵:DMA可以通过DMA总线访问SRAM、闪存和外设。我们知道Contex-M3同样可以通过DCode或者System总线访问这些资料。为了不让两者冲突,需要总线矩阵逻辑进行仲裁决断。

AHB,通过总线矩阵和系统总线相连。再加上AHB/APB桥,构成了到外设的通道。从上图可以看出,APB分为两种:APB1和APB2。这样是为了适应不同速率的外设,同时兼顾性能功耗的考虑。APB1的操作频率限于36MHz,APB2操作于全速(最高72MHz)。

 

2. 存储器组织

STM32F10XXX中flash,内置SRAM,片上寄存器等一起构成一个4GB的线性地址空间。数据采用小端格式存储,即低字节位于低地址(两低为小端)。

下图是片上外设寄存器的映射地址,这便是C程序中以下类型定义的来源。


  1. #define PERIPH_BB_BASE        ((u32)0x42000000)  

  2. #define SRAM_BB_BASE          ((u32)0x22000000)  

  3. #define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)  

 

 

2.1 再来说一下bit-band的概念

        它其实是8051就有的一个技术。它操作的是将某段地址区间的数据,把这些数据的每个bit映射到另外一个地址空间。这样对映射后地址的访问,就等同于映射之前bit的访问。

Cortex™-M3存储器映像包括两个位段(bit-band)区。分别是:

0x2000_0000‐0x200F_FFFF(SRAM 区中的最低 1MB) 
0x4000_0000‐0x400F_FFFF(片上外设区中的最低 1MB)

这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写(RCU)操作的相同效果。
在STM32F10xxx里,外设寄存器和SRAM都被映射到一个位段区里,这允许执行单一的位段的写和读操作。 下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的:
bit_word_addr = bit_band_base + (byte_offset×32) + (bit_number×4) 
其中:

所乘常数32和4是映射后的地址4字节对齐的缘故。
bit_word_addr是别名存储器区中字的地址,它映射到某个目标位。 
bit_band_base是别名区的起始地址。 
byte_offset是包含目标位的字节在位段里的序号 
bit_number是目标位所在位置(0-31)

采用bit-band的优势:

1. 直接操作bit位,加大方便的GBIO口等寄存器的控制。

2. RCU是原子操作,实现资源互斥访问。

3. 使得代码标书更加简洁。

可以在C语句中运用bit-band功能。可以直接#define映射后地址区域,如:


  1. #define DEVICE_REG0 ((volatile unsigned long *) (0x40000000))   

  2. #define DEVICE_REG0_BIT0 ((volatile unsigned long *) (0x42000000))   

  3. #define DEVICE_REG0_BIT1 ((volatile unsigned long *) (0x42000004))   

  4. *DEVICE_REG0_BIT1 = 0x1;       // 通过位带别名地址设置 bit1  

同时,在 GCC和 RealView MDK (即 Keil)  开发工具中,允许定义变量时手工指定其地址。


  1. volatile unsigned long bbVarAry[7] __attribute__(( at(0x20003014) ));   

  2. volatile unsigned long* const pbbaVar= (void*)(0x22000000+0x3014*8*4);  

  3. pbbaVar[136]=1;   //置位第 136号比特  

2.2 嵌入式闪存

结构图如下:

在STM32F10xxx里,可以通过BOOT[1:0]引脚选择从主存储块,系统存储器或者内置SRAM启动程序运行。


关键字:STM32F10XXX  总线架构  存储器组织 引用地址:STM32F10XXX总线架构和存储器组织

上一篇:STM32学习基本 存储器、CRC、电源
下一篇:stm32的学习之存储器和总线架构

推荐阅读最新更新时间:2024-03-16 16:04

深入理解STM32之储存器和总线架构1(基于STM32F411)
本文转载自http://blog.csdn.net/charmingsun/article/details/52258419 官方文档: STM32F411 参考手册 STM32F411 数据手册 Cortex™-M4F 编程手册 STM32 微控制器系统存储器自举模式应用笔记 STM32™ 自举程序中使用的 USART 协议 ARM Cortex™-M Programming Guide to Memory Barrier Instructions 一、系统架构 主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连: 有关AHB总线和APB总线的更多信息请参考博文: 浅析AMBA规范以及AMBA
[单片机]
W801单片机学习笔记——内部结构,总线架构
1.前言 在于各个型号的单片机打交道的这几年越发清晰得发现学习一款单片机一定不能把它当作一个神奇的黑盒子,否则只能跑跑SDK带的例程,感动自己。经过在联盛德官网一通搜寻猛如虎下,终于找到了类似于参考手册和数据手册的文档,他们分别叫寄存器手册和产品规格书,下载连接如下: 链接:https://pan.baidu.com/s/1KG5hJetnraERyEQtrSYIdQ 提取码:SYHT CSDN资源下载连接如下: W801参考手册(寄存器手册),W801数据手册(产品规格书)-单片机文档类资源-CSDN下载 2.W801单片机里面有什么?各部分之间有何关系? 一般情况,在数据手册会有该单片机的总体功能介绍、管脚定
[单片机]
W801单片机学习笔记——内部结构,<font color='red'>总线</font><font color='red'>架构</font>篇
STM32存储器总线架构学习
要学习一个MCU,首先要学习这个芯片的架构,比如这个芯片是32bit 的RSIC V还是哈佛架构,对于STM32F4,它采用ARMv7-ME架构,是32位处理器,哈佛结构,三级流水线,Thumb-2指令集,扩展的DSP指令和SIMD指令,单周期MAC,可选的单精度FPU,可选的MPU,可选的Debug$trace接口 可配置的NVIC,可配置的WIC(wakeup interrupt controller) 3套AHB-Lite总线接口 主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连: 八条主控总线: Cortex™-M4F 内核,Icode总线(I-bus,读取指令)Dcode总线(D-bus,访问数据)
[单片机]
STM32<font color='red'>存储器</font>和<font color='red'>总线</font><font color='red'>架构</font>学习
stm32的学习之存储器总线架构
四个驱动单元:context-M3内核的D-bus总线和S-bus总线、通用DMA1和通用DMA2。 四个被驱动的单元:内部FLASH(内部山村存储器)、内部SRAM、FSMC、AHB到APB的桥AHP2APBx。 ICode总线是context-M3与内部闪存FLASH指令接口之间的连接的总线,实现指令的预取功能。 DCode总线是将context-M3与内部闪存存储器(FLASH)的数据接口连接起来的总线,实现数据读取。 系统总线(system bus)连接context-M3和总线矩阵,总线矩阵协调着context-M3和DMA间的访问。 DMA总线实现DMA的AHB主控接口道总线接口的连接。 总线矩阵 此总线矩阵协调内
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved