STM32学习3 存储器和总线构架
主系统由以下部分构成:
1.四个驱动单元:
Cortex-M3内核,DCode总线和系统总线(S-Bus),通用DMA1和通用DMA2
2四个被动单元
内部SRAM,内部闪存存储器,FSMC,AHB到APB的桥,它链接所有的APB设备。
程序存储器,数据存储器,寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。
可访问的存储器空间被分成8个主要块,每一个块为512M。
STM32F10XX内置64K字节的静态SRAM,它可以以字节,半字,或字访问。
SRAM的起始地址是0x2000000
Cortex-M3存储器映像包括两个位段区。这两个位段区将别外存储区中的每个字映射到位段存储器区的一个位,在别名,存储区写入一个具有对位段区的目标位执行读-改-写操作的相同效果。
闪存的指令和数据访问是通过AHB总线完成的。预取模块是用于通过ICODE总线读取指令的。仲裁是作用在闪存接口,并且DCODE总线上的数据访问优先。
闪存编程一次可以写入16位。
闪存擦除操作可以按页面擦除或完全擦除。全擦除不影响信息块。
启动配置:
STM32F10XX里,可以通过BOOT[1:0]引脚选择三种不同启动模式。
在启动延时之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。
因为固定的存储器映像,代码区始终从地址0x0000 0000开始,而数据区(SRAM)始终从地址0x2000 0000开始。
BOOT1一般接地。
根据选 定的启动模式,主闪存存储器,系统存储器或SRAM可以按揭晓以下方式访问:
1 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但能够 在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000
2 从系统存储器启动:系统存储器被映射到启动空间,但能够在它原有的地址(0x1fff f000)访问。
3 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM.
STM32的工作电压为2.0~3.6V