这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 有些疑惑,STM32F407的Flash和Ram总容量是怎么计算的?

共5条 1/1 1 跳转至

有些疑惑,STM32F407的Flash和Ram总容量是怎么计算的?

工程师
2020-03-04 18:00:23     打赏

有些疑惑,STM32F407的Flash和Ram总容量是怎么计算的?  比如:

ARM Cortex-M4 32b MCU+FPU, 210DMIPS, up to 1MB Flash/192+4KB RAM, USB
OTG HS/FS, Ethernet, 17 TIMs, 3 ADCs, 15 comm. interfaces & camera

flash 512KB 和 192+4KB ram
Flash占用大小=Code+RO+RW
SRAM占用大小=RW+ZI

编译后:
Size: Code=39452 RO-data=1316 RW-data=372 ZI-data=1231108 
按上面计算
Flash占用大小=39452+1316+372=41140B=40.17KB
SRAM占用大小=372 + 1231108=1231480B=1202KB

SRAM计算超出了芯片的192+4KB,超过了芯片RAM为什么还能正常运行?

出现.\Obj\103ZE_MDK5.axf: Error: L6406E: No space in execution regions with .ANY selector matching tim_x.o(.data).  是不是意味着RAM不够用了?


查阅资料:
这些参数的单位是Byte
图中几个参数分别代表 
Code:代码的大小
RO:常量所占空间
RW:程序中已经初始化的变量所占空间
ZI:未初始化的static和全局变量以及堆栈所占的空间
上述参数和芯片Flash以及SRAM的对应关系是 
Flash占用大小=Code+RO+RW
SRAM占用大小=RW+ZI

资料出处
https://blog.csdn.net/u014471291/article/details/79641192





关键词: STM32F407     容量     空间     Flash    

工程师
2020-03-04 21:46:44     打赏
2楼

你这个都连接不出来axf可执行文件,怎么运行的?


高工
2020-03-04 22:01:57     打赏
3楼

百度解决一切问题


工程师
2020-03-04 22:11:03     打赏
4楼

你需要1M多,那硬件就得1M以上啊。


工程师
2020-03-04 22:17:19     打赏
5楼

这个是连接脚本里写的ram大小超过了实际的才能成功连接。
能正常运行,应该是tim_x.c里面的大全局数组被连接在了ram最后,并且没有用那么多。


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]