STM32笔记_2(STM32芯片架构,存储器和寄存器映射)

STM32的架构包括ICode和DCode总线用于取指和数据访问,系统总线用于外设寄存器操作,DMA总线协调CPU和外设访问。存储器映射将4GB地址空间划分为8个块,Block0为内部FLASH,Block1为内部RAM,Block2包含片上外设如GPIO、USART等。外设总线速度差异导致Block2分为APB1和APB2,寄存器映射则为内存单元赋予功能名称。
摘要由CSDN通过智能技术生成

STM32芯片架构简图

ICode((Instruction)指令总线):

程序编译后的指令存放在内部FLASH中,M3内核通过ICode总线取指,然后再执行指令。

DCode((Data)数据总线):

程序有常量和变量。const修饰的变量为常量存储在内部FLASH中,变量不管是全局变量还是局部变量都存放在SRAM中。由于数据可以被DCode和DMA总线访问,所以就需要经过总线矩阵来仲裁。

Systme(系统总线):

系统总线主要用来访问外设寄存器(即读写寄存器就是通过该总线完成)。

DMA总线():

此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。

AHB/APB桥(APB):

两个AHB/APB桥在AHB和2个APB总线间提供同步连接。 APB1操作速度限于36MHz, APB2操作于全速(最高72MHz)。

数据转换:

1T = 1024GB(1TByte = 1024GByte)

1G = 1024M(1GByte = 1024MByte)

1M = 1024KB (1M = 1024KByte)

1KB = 1024Byte

1Byte = 8 bit

对于32位计算机来说,1Word = 4Byte。

FLASH, RAM, FSMC 和 AHB 到 APB 的桥(即片上外设),这些功能部件共同排列在一个 4GB 的地址空间内。

存储器映射

存储器本身不具有地址信息,是由芯片厂商或者有个胡分配的,而给存储器分配地址的过程称为存储器映射。

4GB的存储空间分为8个块(block),每个块都有512MB,对应相应的功能。

三个重要块区:Boock0用来设计成内部FLASH,Block1用来设计成内部RAM,Block2用来设计成片上的外设。

Block2地址从0x4000 0000 到 0x5FFF FFFF分配给了我们的片上外设用如GPIO、USART(串口)、I2C、SPI等。

Block0 主要用于设计片内的 FLASH

Block1 用于设计片内的 SRAM

Block2 用于设计片内的外设

外设的总线速度不同, Block 被分成了 APB 和 AHB 两部分,其中 APB 又被分为 APB1 和 APB2

Speed:AHB > APB2 > APB1

存储器 Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共 32bit(4字节),每一个单元对应不同的功能。

寄存器映射

给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射,别名称之为寄存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small陀螺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值