标题:
stm32存储结构& 存储器映射
[打印本页]
作者:
yuyang911220
时间:
2015-11-22 19:33
标题:
stm32存储结构& 存储器映射
1 STM32
系统结构
要想深刻理解
STM32
的存储器,需要首先知道
STM32
的系统结构。
如
Figure 1
,是
STM32
系统结构框图。
根据
STM32 Reference manual (RM0008)
中的描述,如图:
可以得知
STM32
系统结构的组成,每一个模块更为详细的内容,请参考相关文档。
RM0008
文档中可以看出,
STM32
采用的是
Cortex-M3
内核,因此,有必要了解
Cortex-M3
的存储器结构。
图中还可以看出,
Cortex-M3
是通过各个总线和
Flash
、
SROM
相连接的
。
2 STM32
内核(
Cortex-M3
)的结构
以下是
Cortex-M3
模块框图:
该
Cortex-M3
内核通过
I-Code
、
D-Code
、
System
总线与
STM32
内部的
Flash
、
SROM
相连接的
,该种连接情况直接关系到
STM32
存储器的结构组织;也就是说,
Cortex-M3
的存储器结构决定了
STM32
的存储器结构。
这里可能说的比较笼统,可以这样理解:
Cortex-M3
是一个内核,自身定义了一个存储器结构,
ST
公司按照
Cortex-M3
的这个存储器定义,设计出了自己的存储器结构;但是
ST
公司的
STM32
的存储器结构必须按照
Cortex-M3
这个定义的存储器结构来进行设计。
举个例子:
我买了一个做饭的调料盒子,有三块区域(假设存储器分为
3
块),上面分别标有盐(
Flash
)、糖(
SROM
)、味精(
Peripheral
);此时,该调料盒子并没有任何意义(对应
Cortex-M3
内核);我按照标签放入特定品牌、特定分量的盐(
Flash
)、糖(
SROM
)、味精(
Peripheral
),产生一个有实际意义的调料盒(各类
Cortex-M3
内核的芯片,如
STM32
)。
期间,调料位置不能放错,但可以不放。由上面的例子可以看出,空的调料盒子决定了有意义的调料盒子存放调料的结构。因此,只要了解空盒子的存储结构,就可以很清楚的明白当有调料时的用法了。
3 STM32
内核(
Cortex-M3
)的存储器映射
存储器映射是指把芯片中或芯片外的
FLASH
,
RAM
,外设,
BOOTBLOCK
等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部
RAM
或
FLASH
的情况下可进行自定义。
如图,是
Cortex-M3
存储器映射结构图。
Cortex-M3
是
32
位的内核,因此其
PC
指针可以指向
2^32=4G
的地址空间,也就是
0x0000_0000
——
0xFFFF_FFFF
这一大块空间。
好,根据图中描述,
Cortex-M3
内核将
0x0000_0000
——
0xFFFF_FFFF
这块
4G
大小的空间分成
8
大块:代码、
SRAM
、外设、外部
RAM
、外部设备、专用外设总线
-
内部、专用外设总线
-
外部、特定厂商等。
导致了,使用该内核的设计者必须按照这个进行各自芯片的存储器结构设计。
这就可以去了解
STM32
的存储器结构,以及为什么这样设计
STM32
存储器的结构了。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0