一直以来在做单片机编程时我只关心ROM代码空间的使用量,忽视了RAM的大小,今天明明只是移植了其他例程中的代码,结果调了两个晚上都找不到原因,最后把微库打钩就好了,相当用微库提供的函数优化了一部分代码。下面是报错的代码。
image.png
(最讨厌这种报错了)
SRAM地址从0x20000000开始,空间64k,链接时有0x320个字节数据存放不下。一般有一下几种解决方案:
1、勾选微库
2、提高编译优化等级option->c/c++->optimization的Level0 - level3
3、勾选option ->linker -> use memory layout form target dialog 选择分散加载(理解不深,有待继续研究)
image.png
这是勾选微库之后的编译信息。
Code :代码占用空间量
RO-data (read only):只读常量,(const型)
RW-data (read/write):可读写变量
ZI-data (zero initialize) :没有初始化的变量,不算作代码
image.png
运行时固件占用ROM 大小为 code + RW-data +ROdata =35.03KB
占用的RAM 大小为 RW-data +ZI-data = 63.82KB
image.png
网友评论