型号为STM32F407ZET6,Memory Map如下:
可以看到Flash是完整的一块区域,而RAM却被分成了12KB + 16KB + 64KB = 192KB的三块。
通过查阅资料可知这是ST在芯片设计时针对不同类型的变量做出的考虑,其中:
- 1.CCM SRAM: 64 KB,是独立的高性能内存,具有单独的总线直接与 Cortex-M4 核心相连。特点:访问延迟极低,适用于对性能要求极高的代码或数据,这个区域绝大部分情况是用不到的(以我目前的水平)。
- 2.SRAM1:112 KB,在程序里写的大部分RW变量都存在这里。
- 3.SRAM2:主要是为了与 DMA 控制器配合而设置的,SRAM2 与 SRAM1 采用了不同的总线。需要在SRAM2里运行的程序会自动定义进来,不需要手动设置。