搜索
bottom↓
回复: 10

有使用IAR for SAM8的朋友吗,感觉它的编译效率好低啊!!...

[复制链接]

出0入0汤圆

发表于 2012-6-8 20:24:53 | 显示全部楼层 |阅读模式


有没有使用IAR for SAM8的朋友呢,我怎么感觉它的效率好低啊

下面的程序,都是开了最高级别优化的  

__no_init unsigned char temp;

int main( vod )
{
    temp |= 0x01;
}

单是 temp |= 0x01; 这一句,竟然就用了10字节,会不会是因为定义的变量太少了呢???
生成的汇编是:
        //   75         temp |= 1;
        LD        R15,#LOW(temp)
        LD        R14,#1
        LD        R13,@R15
        AND       0xDF,#252
        OR        R13,R14
        LD        @R15,R13

在生成的汇编中,只在一处找到#LOW,就是上面那里,其它地方没有找到,不知道这个#LOW是怎么来的

__no_init unsigned char temp@0xb0;

int main( void )
{
    temp |= 0x01;
}

这样子写的效率明显比上面的高很多,但带来的一个问题是,在编译结果中,RAM的使用数量不对,
也就是没有算到使用的RAM里面去,堆栈占去32个字节,编译结果中,RAM的使用量仍是32字节。

下面是生成的汇编:
        //   75         temp |= 1;
        OR        0xB0,#1
        AND       0xDF,#252

//-----------------------------------------------------------------------------------------------------------------------------------

很喜欢IAR支持匿名结构体的功能,但是,上面那样的效率实在是不怎么能接受,我觉得原因应该是:

1、我自己对IAR for SAM8还不够了解,还不知道怎么用,或是有哪些设置

2、程序太短了

小弟最近要用到s3c9454,不怎么想用汇编,还请有使用过的朋友指点下IAR for SAM8有什么技巧?


阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-6-8 20:39:01 | 显示全部楼层

自己顶顶,实在不想去用汇编

出0入0汤圆

 楼主| 发表于 2012-6-8 21:27:41 | 显示全部楼层
是不是很少人用三星的单片机啊?

出0入0汤圆

发表于 2012-6-8 22:41:23 | 显示全部楼层
三星单片机还是汇编写程序好点

出0入0汤圆

发表于 2012-6-9 11:29:36 | 显示全部楼层
ijlc1314 发表于 2012-6-8 21:27
是不是很少人用三星的单片机啊?

我觉得还可以,我使用的是IAR FOR SAM8 3.2 ,只有到程序容量不够的时候我去查反汇编,再修改C语言!

出0入0汤圆

 楼主| 发表于 2012-6-9 12:01:28 | 显示全部楼层
zhikunWang 发表于 2012-6-9 11:29
我觉得还可以,我使用的是IAR FOR SAM8 3.2 ,只有到程序容量不够的时候我去查反汇编,再修改C语言! ...

我也是用的3.20A版本的,编译器用的是ICCSAM_V230C,在论坛里下的,刚刚接触这个,可能是还不太熟悉吧?

出0入0汤圆

 楼主| 发表于 2012-6-11 21:14:48 | 显示全部楼层
longwu911 发表于 2012-6-8 22:41
三星单片机还是汇编写程序好点

用汇编好痛苦啊

出0入0汤圆

发表于 2012-7-17 14:18:15 | 显示全部楼层
把变量放在Page0试试?
如:
#pragma type_attribute=__tiny
unsigned char temp;

__tiny unsigned char temp;

出0入0汤圆

 楼主| 发表于 2012-7-18 17:57:30 | 显示全部楼层
korren 发表于 2012-7-17 14:18
把变量放在Page0试试?
如:
#pragma type_attribute=__tiny

一样的,同一个程序,在3.10或是3.20版本中编译,生成的程序接近6K,在2.21A版本中编译才4.5K

出0入0汤圆

发表于 2012-8-1 18:16:18 | 显示全部楼层
应该是设置不一样,所以大小不一样!

出0入0汤圆

发表于 2012-9-6 11:02:53 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 12:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表