[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条回答
bigZ
2019-12-19 02:25
对于CISC的MCU来说,MOV实际使用的时钟周期比手册中说的可能要多
曾经测试过瑞萨的MCU,手册说是3个时钟,可实际测试却要11个(其客服曾向我展示过TRACE仿真的数据,和我的测试结果相同)
所以对于x=y这种操作编译后要么是:
MOV x,y
要么是
LD A,x
LD y,A

而LD指令实测速度可能是最快的
2条LD使用的代码量和1条MOV可以说是相同的
可以参考STM8的指令手册

一周热门 更多>