这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 调试C51程序时,把一个函数注销了,为何编译后RAM占用空间更大了?

共5条 1/1 1 跳转至

调试C51程序时,把一个函数注销了,为何编译后RAM占用空间更大了?

工程师
2020-02-15 21:31:31     打赏

大家晚上好!

请教一个问题: 一个C51程序,我在调试时把一个函数注销了,结果编译时占用数据存储器空间反而变大了。我想不通源代码少了数据存储器为什么会变大?

编译器是keil C51。




关键词: C51程序     SRAM     RAM     存储器     Keil    

工程师
2020-02-15 23:12:35     打赏
2楼

嗯, 非常有可能啊, 因为这段代码还是编译了, 同时没有了那段代码的覆盖分析, 所以专用 RAM 反而更大.


工程师
2020-02-15 23:20:11     打赏
3楼
极有可能:
注销的函数调用了多个子程序,注销后,这些子函数又没有被其它函数调用,导致这些函数的局部变量不能被覆盖分析(也就是不能与其它函数共享局部变量,只能独占内存单元)


解决办法:

将没有调用的函数都屏蔽掉看看。



工程师
2020-02-15 23:29:27     打赏
4楼

贴出代码看看,或许实测才方便找出BUG所在


工程师
2020-02-15 23:47:07     打赏
5楼

还没注意过类似这样的问题。。。 估计引用其他函数引起的吧?!


共5条 1/1 1 跳转至

回复

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