[STM8] STM8编译结果这么大,科学么

[复制链接]
 楼主| 始于116 发表于 2016-4-8 17:58 | 显示全部楼层 |阅读模式
本帖最后由 始于116 于 2016-4-8 18:01 编辑

谢谢,请看一下附件,关于具体问题现象描述的很详细

1.        Timer1中断中静态变量声明几个就造成了1Kbyte+的ROM增加,
2.        初始化函数占用程序特别大,为什么?

温控程序诊断.pdf

136.79 KB, 下载次数: 22

blueskycoco 发表于 2016-4-8 18:13 | 显示全部楼层
可以用sdcc来编译
E-Kaia 发表于 2016-4-8 22:22 | 显示全部楼层
你的静态变量是不是定义的太多导致的啊
457344370 发表于 2016-4-9 17:55 来自手机 | 显示全部楼层
是不是浮点型的问题?
turmary 发表于 2016-4-9 20:07 | 显示全部楼层
这是优化的问题,所有没有调用(包括直接或间接调用的函数/库函数)的函数代码(code, in readonly memory) 都会在最后的输出文件里消失。
 楼主| 始于116 发表于 2016-5-10 00:44 | 显示全部楼层
turmary 发表于 2016-4-9 20:07
这是优化的问题,所有没有调用(包括直接或间接调用的函数/库函数)的函数代码(code, in readonly memory) 都 ...

谢谢啦,那请问我把库函数去掉,写成了寄存器,就省出来2K,是不是就是这个道理,按道理说,调用库函数没用的不应该编译生成最终代码吧
 楼主| 始于116 发表于 2016-5-10 00:44 | 显示全部楼层

谢谢
 楼主| 始于116 发表于 2016-5-10 00:45 | 显示全部楼层
E-Kaia 发表于 2016-4-8 22:22
你的静态变量是不是定义的太多导致的啊

静态变量是不少,不过这也不是关键问题,还是谢谢啦
643757107 发表于 2016-5-10 15:36 | 显示全部楼层
科学,应该就是这样的,你可以看看生成的代码对应的汇编,或者自己用汇编写也是可以的。
huangcunxiake 发表于 2016-5-10 21:26 | 显示全部楼层
如果不超过存储空间容量就没用问题,你不用担心。总是有人有强迫症,想把代码亚索到最小,实际上这个是多虑了,只要存储空间够存储你的程序,就算刚刚好,一个B特也不多,那也是可以接受的。
android2 发表于 2016-5-10 21:27 | 显示全部楼层
楼主用的什么编译软件,会不会是软件设置问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

199

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部