关于编译的Code;RO-data; RW-data;ZI-data;疑问

2019-07-21 08:14发布

使用keil软件对程序进行编译,结果如下:Program Size: Code=33542 RO-data=1254 RW-data=288 ZI-data=1056120  
网上找了一下资料:
ROM (minimum)size = Code + RO_data + RW_data (即烧/下载程序到FLASH/ROM时,所占用的最小空间)
RAM size: RW Data + ZI Data (即程序运行的时,RAM使用的空间)
然后我这个芯片是128KFLASH,20KRAM;
这样看起来RAM不是不够用吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
fang百川
1楼-- · 2019-07-21 13:19
原因找到了,因为加上了内存管理单元,一下子ZI-data涨到了1M,现在去掉了那部分代码,
//        my_mem_init(SRAMIN);                                    //初始化内部内存池
Program Size: Code=33542 RO-data=1254 RW-data=288 ZI-data=10616   
10KRAM;
陈皮皮
2楼-- · 2019-07-21 17:20
 精彩回答 2  元偷偷看……
fang百川
3楼-- · 2019-07-21 21:30
陈皮皮 发表于 2018-11-6 13:23
是的,你是不是在哪里定义了一个很大的全局缓存,占用了ZI。根据提示已经近1M了

但是编译能通过,而且下载运行暂时没发现大问题
csmjmcc
4楼-- · 2019-07-21 22:53
ZI-data=1056120  = 1031k   怎么这么大?
fang百川
5楼-- · 2019-07-22 03:48
csmjmcc 发表于 2018-11-6 13:26
ZI-data=1056120  = 1031k   怎么这么大?

我自己就定义了一个变量用来保存网络数据,也就2k,操作系统是ucos2,4个任务,没其他的了,不知道为啥开的内存这么多

一周热门 更多>