21ic电子技术开发论坛 单片机与嵌入式系统 ST MCU STM8编译结果这么大,科学么
发新帖我要提问
返回列表
打印
[STM8]

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

[复制链接]
1238|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
始于116|  楼主 | 2016-4-8 17:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 始于116 于 2016-4-8 18:01 编辑

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

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

温控程序诊断.pdf

136.79 KB

沙发
blueskycoco| | 2016-4-8 18:13 | 只看该作者
可以用sdcc来编译

使用特权

评论回复
板凳
E-Kaia| | 2016-4-8 22:22 | 只看该作者
你的静态变量是不是定义的太多导致的啊

使用特权

评论回复
地板
457344370| | 2016-4-9 17:55 | 只看该作者
是不是浮点型的问题?

使用特权

评论回复
5
turmary| | 2016-4-9 20:07 | 只看该作者
这是优化的问题,所有没有调用(包括直接或间接调用的函数/库函数)的函数代码(code, in readonly memory) 都会在最后的输出文件里消失。

使用特权

评论回复
6
始于116|  楼主 | 2016-5-10 00:44 | 只看该作者
turmary 发表于 2016-4-9 20:07
这是优化的问题,所有没有调用(包括直接或间接调用的函数/库函数)的函数代码(code, in readonly memory) 都 ...

谢谢啦,那请问我把库函数去掉,写成了寄存器,就省出来2K,是不是就是这个道理,按道理说,调用库函数没用的不应该编译生成最终代码吧

使用特权

评论回复
7
始于116|  楼主 | 2016-5-10 00:44 | 只看该作者

谢谢

使用特权

评论回复
8
始于116|  楼主 | 2016-5-10 00:45 | 只看该作者
E-Kaia 发表于 2016-4-8 22:22
你的静态变量是不是定义的太多导致的啊

静态变量是不少,不过这也不是关键问题,还是谢谢啦

使用特权

评论回复
9
643757107| | 2016-5-10 15:36 | 只看该作者
科学,应该就是这样的,你可以看看生成的代码对应的汇编,或者自己用汇编写也是可以的。

使用特权

评论回复
10
huangcunxiake| | 2016-5-10 21:26 | 只看该作者
如果不超过存储空间容量就没用问题,你不用担心。总是有人有强迫症,想把代码亚索到最小,实际上这个是多虑了,只要存储空间够存储你的程序,就算刚刚好,一个B特也不多,那也是可以接受的。

使用特权

评论回复
11
android2| | 2016-5-10 21:27 | 只看该作者
楼主用的什么编译软件,会不会是软件设置问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

199

帖子

2

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