[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条回答
maozi4779
1楼-- · 2019-12-15 13:11
回复【31楼】taishan
-----------------------------------------------------------------------

21ic 有人在搞STM8的编译器,估计国内这环境有能力搞,也未必有时间和心情去搞,都为了生计。。。。
cyberjok
2楼-- · 2019-12-15 14:24
回复【30楼】cyberjok
楼上高手啊,有没有计划自己搞个编译器?

-----------------------------------------------------------------------

呵呵,这倒还没有。
毕竟这个太费精力了,无暇顾及那么多啊
你看现在基于GCC的个人维护的编译器,都现状不佳啊,缺乏维护

MSP430的,就停留在老版本上了
AVR的,原作者不维护了,新版GCC4上的编译效率反而不如GCC3

而不使用GCC的话,更是无从谈起

而且,用GCC的话,也有很多事情要做呢
先是 binutils, 再是 gcc,然后是优化的 libgcc,最后是 C运行库
不单单是移植一个gcc就完事的啊
Cliff
3楼-- · 2019-12-15 14:39
回复【29楼】Cliff  
回复【28楼】stm8s103 
-----------------------------------------------------------------------

从你言谈中很能透露出对iar的支持啊!

但是,现在几款stm8的c编译器都不尽如人意
iar强大是强大,但是抛不开risc的理念,却是一个硬伤。
不论是stm8的虚拟寄存器,还是avr的虚拟(软件)堆栈,都很明显的露出了生搬硬套risc c编译器的影子

所谓万事古难全,如果iar不是致力于risc,它也不可能为每一款mcu设计对它优化的编译器
keil当年可以专注于51,但iar不可专注于stm8、avr……之内的一样

我的意思是,iar的c编译器理念,并不是最理想的

现在就回到你所说的问题上来:
〉虚拟寄存器不好的地方,只是中断的时候要保护虚拟寄存器, 
〉但是优点也是显......
-----------------------------------------------------------------------
8bitMCU本来就对空间比速度要重视,空间就是成本!!!能用8Kflash的不用16K。至于速度嘛,不太差就好了。51比avr差远了,但还是很多人用,何况就差几个CLK的中断周期呢
dianzidog
4楼-- · 2019-12-15 17:42
 精彩回答 2  元偷偷看……
Cliff
5楼-- · 2019-12-15 20:34
2、我说的速度,是中断响应速度,或任务切换速度。实时性 不等于 快
-------------------------------------------------------------------

任务切换速度应该不是问题。
任务实时性一般不会在乎任务切换多用几个us.
多几个us,少几个us对任务实时性影响不大。

AVR保护通用寄存器要64个周期,STM8保护通用寄存器与虚拟寄存器只要25个周期,
AVR跑OS都不是问题,stm8更不是问题。

实时性更加敏感的是中断,
真的到了多几个周期都不能忍受,
中断就该用内嵌汇编了。
stm8s103
6楼-- · 2019-12-16 00:51
回复 cliff   
-----------------------------------------------------------------------
所谓万事古难全,如果iar不是致力于risc,它也不可能为每一款mcu设计对它优化的编译器
keil当年可以专注于51,但iar不可专注于stm8、avr……之内的一样

我的意思是,iar的c编译器理念,并不是最理想的
-----------------------------------------------------------------------

基本同意。

我的看法是iar由于多线作战,不能专注于某个特定的编译器。
通常iar精力用的比较多的编译器,效率都不错,如iaravr,iararm。

现在担心iar是否重视stm8,如果重视不够,也可能iarstm8永远杯具下去。

我个人到不认为是risc,cisc理念有别。

一周热门 更多>