[stm8s]IAR for stm8果然是杯具-_-

2019-12-11 18:34发布

总见上官一直支持IAR,我今天也突然有兴致换个编译器试试,
移植了cosmic下的一个stm8s103F3的工程,编译成功,结果发现真杯具-_-


cosmic下 data:58 flash:2578 堆栈未知(我没做堆栈占用信息的统计工具) 我并没有使用开代码压缩,即使开了也就再少几十字节,我写的代码一向注重优化了。。。

结果在IAR下
  2 143 bytes of readonly  code memory
  1 105 bytes of readonly  data memory
    326 bytes of readwrite data memory


杯具。。。等IAR懂了stm8的指令,等IAR懂(u8)(a>>8)只取低8位就可以不需要真的移8次,要等到什么时候-_-
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
90条回答
stm8s103
1楼-- · 2019-12-12 12:00
cosmic不会用寄存器,
iar不会stm8指令,

---------------
从长远讲,cosmic可能一直悲剧下去。
iar提升空间应该还有很多。
AWEN2000
2楼-- · 2019-12-12 12:05
iar代码效率很低很低

同样一个程序在iar下最大压缩,只比cosmic未压缩的文件下小一点点

同样不压缩,iar的程序庞大的惊人


cosmic的压缩很狗屎,只有最大压缩。
我一最大压缩,程序运行就不正常了,不象iar可以调整优化选项

cosmic我只能不压缩了,大小还好
snoopyzz
3楼-- · 2019-12-12 16:26
 精彩回答 2  元偷偷看……
dianzidog
4楼-- · 2019-12-12 20:33
2 143 bytes of readonly  code memory  ----->iar代码
1 105 bytes of readonly  data memory  ----->iar数据表格
326 bytes of readwrite data memory    ----->iar所有ram,包括16个虚拟寄存器,默认256byte堆栈,用户ram

默认堆栈是很大很大的,要用户按需设置!!!!
snoopyzz
5楼-- · 2019-12-12 21:52
另外,上官兄

对于这个工程,IAR最高等级优化效果如下

  2 143 bytes of readonly  code memory
  1 105 bytes of readonly  data memory
    326 bytes of readwrite data memory
不优化如下
  2 830 bytes of readonly  code memory
  1 105 bytes of readonly  data memory
    326 bytes of readwrite data memory
相差的确不少

ps. cosmic的优化默认就是开的,只是代码压缩没开
我如果禁止cosmic优化,
ram还是58,flash是2974,
比2558多了416字节。
snoopyzz
6楼-- · 2019-12-13 03:11
回复【11楼】dianzidog
2 143 bytes of readonly  code memory  ----->iar代码
1 105 bytes of readonly  data memory  ----->iar数据表格
326 bytes of readwrite data memory    ----->iar所有ram,包括16个虚拟寄存器,默认256byte堆栈,用户ram
默认堆栈是很大很大的,要用户按需设置!!!!
-----------------------------------------------------------------------

请问下,我刚装IAR,不大懂,在哪里设置?
还有这256字节堆栈是作什么用的??
在cosmic中,变量区向上增长,堆栈向下增长,编译器会识别出函数调用关系,如果两个区有重合,就会报错的

原来装IAR是因为刚买块STM32的开发板,当然首选用IAR ,想着STM8也一起统一下编译器,目前看来是不现实了

一周热门 更多>