[STM8] STM8 编译效率的问题

[复制链接]
2918|18
 楼主| MakeBetter 发表于 2013-12-17 11:09 | 显示全部楼层 |阅读模式
我现在使用IAR for stm8,使用芯片为STM8L101F3P6,这个芯片Flash有8K,对于8位单片机来说,我觉得应该是足足有余了。可是,我现在程序还没写完呢,空间已经不够了,IAR的优化级别已调到最高,我也把一些long、short 型数据能去掉的去掉,不能去掉的用char 来操作,结果虽然好点,但空间还是不够。这款芯片8K又是最高了,没法替代。内存空间确是足够用了。
想来,只有一种方式可供选择,就是选择更高效率的编译器,不知哪位大侠有没有比较过各个IDE,有的话,给点建议,在此谢过!~
另外,有没有更高版本的IAR for stm8?其编译效率能有提升?
airwill 发表于 2013-12-17 12:06 | 显示全部楼层
编译器好像还不是很多, 我看算法优化倒值得研究一下, 说不定可以大幅度地下降.
airwill 发表于 2013-12-17 12:08 | 显示全部楼层
编译器好像还不是很多, 我看算法优化倒值得研究一下, 说不定可以大幅度地下降.
xxiao6130 发表于 2013-12-17 13:39 | 显示全部楼层
看来只好优化一下你的程序了
 楼主| MakeBetter 发表于 2013-12-17 14:29 | 显示全部楼层
程序已极度优化了,能省省,能合并合并了
 楼主| MakeBetter 发表于 2013-12-17 14:30 | 显示全部楼层
听说CXSTM8+ST Visual Develop 能有很高的效率,准备试一下。
jiayue 发表于 2013-12-17 15:06 | 显示全部楼层
汇编吧 stm8汇编效率很高的..
香水城主 发表于 2013-12-17 15:25 | 显示全部楼层
不要用那个蛋痛的库,库函数会吃内存的,而且是悄悄地吃
拿起书本 发表于 2013-12-17 16:20 | 显示全部楼层
CXSTM8+ST Visual Develop ,也听说了,正准备下载了,不知是什么版本的,正要去看看好呢。
gpjun2008 发表于 2013-12-17 16:22 | 显示全部楼层
要么换stvd,听说效率高点;要么换芯片;要么程序优化。
 楼主| MakeBetter 发表于 2013-12-17 22:41 | 显示全部楼层
香水城主 发表于 2013-12-17 15:25
不要用那个蛋痛的库,库函数会吃内存的,而且是悄悄地吃

库的问题就不用说了,早就丢了。
 楼主| MakeBetter 发表于 2013-12-17 22:43 | 显示全部楼层
gpjun2008 发表于 2013-12-17 16:22
要么换stvd,听说效率高点;要么换芯片;要么程序优化。

看来也只有这几个方法了。但程序优化是弄了很久了。
 楼主| MakeBetter 发表于 2013-12-17 22:43 | 显示全部楼层
jiayue 发表于 2013-12-17 15:06
汇编吧 stm8汇编效率很高的..

让我转汇编是不可能的。写8K的汇编?那就想死了。又不能移植,换平台就死了。
nongfuxu 发表于 2013-12-18 08:01 | 显示全部楼层
编译器好像还不是很多, 我看算法优化倒值得研究一下, 说不定可以大幅度地下降.

是啊。
算法,加上好的代码风格。
zh_sl 发表于 2013-12-18 09:23 | 显示全部楼层
stm8多数指令占32位的,你不能按8位来算
 楼主| MakeBetter 发表于 2013-12-19 10:23 | 显示全部楼层
好了,测试结果来了:
xxx1.jpg
xxx2.jpg
 楼主| MakeBetter 发表于 2013-12-19 10:27 | 显示全部楼层
以上就是结果,第一张是 CXSTM8+ST Visual Develop 编译结果,当然,stm8l101 的8k是放不下,我换了个151编译的。至于csmic为什么会显示编译后代码大小,大家可以去看【诗诺比】的插件。
第二张图是IAR经过了大代码压缩后的结果,还是可以放下的。
以上两个是相同代码。
奔牛滚滚 发表于 2013-12-19 12:22 | 显示全部楼层
看看哪个模块占用多就优化哪个模块
l4157 发表于 2014-1-8 21:30 | 显示全部楼层
本帖最后由 l4157 于 2014-1-8 21:43 编辑

如有可能可以放一些不常用CONST到EEPROM,不过STM8L101的EE也含在8K中...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

519

帖子

0

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