打印

决定只用IAR了

[复制链接]
13120|44
手机看帖
扫描二维码
随时随地手机跟帖
沙发
xinjie1023| | 2009-10-11 15:47 | 只看该作者
拭目以待。

使用特权

评论回复
板凳
Simon21ic| | 2009-10-11 19:58 | 只看该作者
不是以前测试都是MDK的代码效率高吗?
只是因为MDK是一个close的系统,所以偶才8用。。。

使用特权

评论回复
地板
coreduo| | 2009-10-11 20:12 | 只看该作者
应该是mdk效率高

使用特权

评论回复
5
machunshui|  楼主 | 2009-10-12 08:18 | 只看该作者
比较一下两者编译的ucosII的就知道了。

IAR比MDK高效不是一点半点。

看看Micrium公司提供的UCOSII移植绝大部分是基于IAR

使用特权

评论回复
6
精益求精| | 2009-10-12 08:28 | 只看该作者
呵呵。。。

使用特权

评论回复
7
machunshui|  楼主 | 2009-10-12 08:33 | 只看该作者
以Micrium提供的基于lpc2148的ucosii的OS-Probe移植工程为例。(都是ARM指令集编译方式)

KEIL无优化编译:
Program Size: Code=39280 RO-data=400 RW-data=256 ZI-data=15992  

IAR无优化编译:
24 028 bytes of CODE  memory
14 761 bytes of DATA  memory
    550 bytes of CONST memory



KEIL 1级优化
Program Size: Code=31744 RO-data=288 RW-data=248 ZI-data=15992  

IAR低级优化:
22 640 bytes of CODE  memory
14 761 bytes of DATA  memory
    550 bytes of CONST memory


KEIL 2级优化
Program Size: Code=28244 RO-data=288 RW-data=248 ZI-data=15992  

IAR Medim 优化:
17 744 bytes of CODE  memory
14 774 bytes of DATA  memory
    550 bytes of CONST memory


KEIL 3级优化(最高级):
Program Size: Code=28308 RO-data=288 RW-data=248 ZI-data=15992  

IAR High 优化(最高级)
15 036 bytes of CODE  memory
14 738 bytes of DATA  memory
    550 bytes of CONST memory

可以代码效率方面,说差距巨大,
而对于精简指令MCU,代码大小,往往意味着执行速度大小

使用特权

评论回复
8
arm_fan168| | 2009-10-12 10:55 | 只看该作者
我把ICCAVR下的一个程序移植到IAR EWAVR下,code空间缩小了近一倍,有点夸张。

使用特权

评论回复
9
zhaoyu2005| | 2009-10-12 13:02 | 只看该作者
好像是keil的代码小,keil的好像是code+RO+RW,而IAR的好像是code+data

使用特权

评论回复
10
machunshui|  楼主 | 2009-10-12 14:10 | 只看该作者
KEIL小,LS怎么算的?
IAR的代码率比KEIL高效多的。

KEIL 3级优化(最高级):
Program Size: Code=28308 RO-data=288 RW-data=248 ZI-data=15992  

IAR High 优化(最高级)
15 036 bytes of CODE  memory
14 738 bytes of DATA  memory
    550 bytes of CONST memory

KEIL 代码段28308   常量数据段:288  RAM变量:16240 (RW+ZI = 248+15992)
IAR  代码段15036  常量数据段:550  RAM变量:14738

同为最高优化编译,
IAR高效太多了,
真不知说KEIL代码是怎么算的?

使用特权

评论回复
11
mohanwei| | 2009-10-12 14:10 | 只看该作者
比大小看bin最直接

也可以看“readonly  code memory ”和“readonly  data memory ”之和,通常情况下是KEIL稍微小一点。

使用特权

评论回复
12
machunshui|  楼主 | 2009-10-12 14:17 | 只看该作者
不存在要看BIN的问题,
根本没必要。

MAP文件清楚的显示了代码段的大小,
IAR高效很多。

使用特权

评论回复
13
machunshui|  楼主 | 2009-10-12 14:21 | 只看该作者
本帖最后由 machunshui 于 2009-10-12 14:28 编辑
比大小看bin最直接

也可以看“readonly  code memory ”和“readonly  data memory ”之和,通常情况下是KEIL稍微小一点。
mohanwei 发表于 2009-10-12 14:10


KEIL 3级优化(最高级):
Program Size: Code=28308 RO-data=288 RW-data=248 ZI-data=15992  

IAR High 优化(最高级)
15 036 bytes of CODE  memory
14 738 bytes of DATA  memory
    550 bytes of CONST memory


readonly  code memory:
KEIL 28308+288+248 = 28844字节
IAR  15 036+550          = 15586字节


IAR高效很多,
某些同志还是不肯接受啊,
难道连编译器也有FANS?

使用特权

评论回复
14
machunshui|  楼主 | 2009-10-12 14:24 | 只看该作者
本帖最后由 machunshui 于 2009-10-12 14:26 编辑

实际情况是KEIL差很多,(实际上是RealView编译器差很多)

UCOS编译代码大小关系到ucos本家公司的切身利益,
ucos本家公司的移植,
多用IAR最能说明问题了,

使用特权

评论回复
15
arm_fan168| | 2009-10-12 14:57 | 只看该作者
看bin文件的大小确实比较直接,但根据楼主的数据,keil的应该不会比IAR的小。

使用特权

评论回复
16
machunshui|  楼主 | 2009-10-12 15:21 | 只看该作者
Map文件和看BIN和不会有什么差异

使用特权

评论回复
17
Simon21ic| | 2009-10-13 22:01 | 只看该作者
本帖最后由 Simon21ic 于 2009-10-13 22:03 编辑

最近自己也测试了一下,确实IAR全面领先MDK。还好偶一直都是使用IAR的。
以一个项目代码,比较了MDK、IAR、Codesourcery G++ Lite
http://bbs.stmfans.com/viewthread.php?tid=5167&extra=page%3D1
不过对于我来说,MDK最大的问题是封闭的环境,并且免费版本不可用于商业项目的开发。

LZ对比过执行效率吗?

使用特权

评论回复
18
mcuisp| | 2009-10-28 01:44 | 只看该作者
用户喜欢IAR,但是芯片原厂喜欢MDK,呵呵。

使用特权

评论回复
19
wlq_9| | 2009-10-28 09:16 | 只看该作者
用户喜欢IAR,但是芯片原厂喜欢MDK,呵呵。
------------------------------------------------
没这种说法,几家半导体商的DEMO,都是IAR/MDK同时提供的.
而且有几家半导体商的其它芯片还是IAR开发的环境,要谈合作关系,肯定是IAR和半导体商关系密切的多.
每开发一个产品线,半导体商都是要付钱给这些开发工具商的.MDK目前还限于51/arm,IAR的手早就伸得老远了.

使用特权

评论回复
20
mcuisp| | 2009-10-28 09:47 | 只看该作者
呵呵,我的意思是MDK占FLASH多,芯片厂能卖高端些的芯片,当然喜欢啦。
要付钱给开发工具商?这个为啥?应该不一定。

使用特权

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

本版积分规则

153

主题

3224

帖子

4

粉丝