2. 查看SRAM的总大小-以STM32F407举例2.1 keil软件中查看点击魔法棒-Target:IRAM1,IRAM2之和就是SRAM的大小2.2 在启动文件.sct中查看在工程文件夹中搜索.sct可以看到里面内容是这样的LR_IROM1是flash该行后面两个分别是起始地址和大小(512kb);ER_IROM1是程序代码存放区这里表示全部的flash都用来存放程序代码RW_IRAM1是SRAM中的一部分起始地址是0x2000000,大小是112kb;RW_IRAM2也是SRAM中的另一部分起始地址是0x2001C00,也就是RW_IRAM1的末尾地址大小是16kb2.3 cubmx中查看芯片选择时可以看到如果已经过了这一步可以退回查看右下角可以看到RAM是192kb2.4 其实最重要的还是需要查看数据手册存储器和总线架构章节首先从系统架构中也可以看到SRAM部分就有SRAM1,SRAM2,SRAM3。我们也可以从总线矩阵中看到一共有三块不同大小的SRAM那么这三个SRAM有什么区别呢在上上张图中已经有了一些说明CCM(即SRAM3)只能由CPU来进行访问这是三者中的第二个区别第一个区别便是内存啦下面还有第二张图除了这三块SRAM竟然还有一小块4KB得SRAM这里就不对该SRAM进行探索了从总线矩阵和该小节(嵌入式SRAM)中可以看出SRAM1 vs SRAM2二者都可以供所有得AHB主控总线访问但是从这里可以看出只有SRAM1支持I总线和D总线访问这可能是为了将需要高速率通讯得数据缓存在SRAM1中而外设那些要求速率比较低的放在SRAM2中SRAM3 vs SRAM1,2:2.3.1节中可以看到三者都可以供所有的AHB主控总线访问并且CPU对SRAM1/SRAM3进行读写操作时特殊外设还可以同时操作SRAM2但是值得注意一点手册中既提到说SRAM3可以供所有AHB主控总线访问又提到SRAM3只能供CPU通过数据总线访问根据我的理解只是STM32F42xxx 和 STM32F43xxx的SRAM3才支持AHB主控总线访问F407等只是支持CPU进行访问不过让我疑惑的是为什么下图的STM32F42xxx 和 STM32F43xxx的总线矩阵没有体现这一点。以上就是我了解到的查看SRAM的总大小的方法不过又引发一个问题在程序运行的过程中怎么查看SRAM的剩余大小呢下篇文章再一起研究另外如果有朋友能解答我最后提出的疑惑我将不甚感激。