搜索
bottom↓
回复: 13

keilMDK 的优化水平在下降吗,同个项目文件,MDK3.5 的优化 比MDK 4.10的好些?

[复制链接]

出0入0汤圆

发表于 2010-3-11 19:29:31 | 显示全部楼层 |阅读模式
还是上次的stm32sky001,优化等级-O3

MDK 3.5

Program Size: Code=25736 RO-data=3888 RW-data=672 ZI-data=7464  

MDK 4.10

Program Size: Code=26346 RO-data=3902 RW-data=672 ZI-data=7464

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

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

出0入0汤圆

发表于 2010-3-11 21:44:17 | 显示全部楼层
code小就是优化强? 反之就弱?
把运算换成查表法size变大了,是优? 是劣?

当然,我不是说4.10就一定强,你需要找出具体差异处,然后看看具体的指令,就知道哪个更强了.

出0入0汤圆

发表于 2010-3-11 21:55:57 | 显示全部楼层
我也发现同样问题 还没有找到答案.

出0入0汤圆

发表于 2010-3-11 22:03:44 | 显示全部楼层
对比下map文件,看看是哪里大了.

出0入0汤圆

 楼主| 发表于 2010-3-11 22:29:09 | 显示全部楼层
回复【1楼】aozima
code小就是优化强? 反之就弱?
把运算换成查表法size变大了,是优? 是劣?
当然,我不是说4.10就一定强,你需要找出具体差异处,然后看看具体的指令,就知道哪个更强了.
-----------------------------------------------------------------------

当然还要看执行速度,但是,按照常理,同样的选项下(有个选项是优化时间的,我没选),应该是新版本代码更少的吧。



刚刚选了优化时间再重新编译,发现变得更大了

Program Size: Code=31226 RO-data=4022 RW-data=672 ZI-data=7464  

但是我认为这是正常的。

出0入0汤圆

发表于 2010-3-11 22:53:33 | 显示全部楼层
对比了前后的map文件.发现多个文件都比3.*的大了2~4字节,可以确认是4.*的armcc优化策略不同,但实在是不好找出具体的指令.不知道有什么方法可以快速查找?

出0入0汤圆

 楼主| 发表于 2010-3-11 22:57:19 | 显示全部楼层
我也正在查找,但是我找不到MDK输出汇编的选项,不然的话,可以用UE比较一下汇编文件,看看那里有差别。

出0入0汤圆

发表于 2010-3-11 23:12:42 | 显示全部楼层
找到一些区别:
      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   Object Name
3.80a
      1594        176        341          2        112      12904   codec.o
      1598        178        341          2        112      12592   codec.o
4.10

区别
;;;608                    codec.offset = 0;
000058  2000              MOVS     r0,#0
00005a  3568              ADDS     r5,r5,#0x68
;;;609                    codec.read_index = next_index;
00005c  6068              STR      r0,[r5,#4]  ; codec
00005e  802c              STRH     r4,[r5,#0]
;;;610                    if (next_index == codec.put_index)
000060  8868              LDRH     r0,[r5,#2]  ; codec
000062  42a0              CMP      r0,r4
000064  d109              BNE      |L9.122|

;;;608                    codec.offset = 0;
000058  2000              MOVS     r0,#0
00005a  f1050568          ADD      r5,r5,#0x68
;;;609                    codec.read_index = next_index;
00005e  6068              STR      r0,[r5,#4]  ; codec
000060  802c              STRH     r4,[r5,#0]
;;;610                    if (next_index == codec.put_index)
000062  8868              LDRH     r0,[r5,#2]  ; codec
000064  42a0              CMP      r0,r4
000066  d109              BNE      |L9.124|

出0入0汤圆

 楼主| 发表于 2010-3-11 23:18:01 | 显示全部楼层
回复【7楼】aozima
-----------------------------------------------------------------------

谢谢你~~

出10入0汤圆

发表于 2010-3-12 08:30:36 | 显示全部楼层
所以UV4也可以让你把工程返回到UV3的状态下去。

哥的帅不能当饭吃,想要贤慧的还是老的好。

出0入0汤圆

发表于 2010-3-12 09:06:12 | 显示全部楼层
回复【9楼】huike  
所以UV4也可以让你把工程返回到UV3的状态下去。
哥的帅不能当饭吃,想要贤慧的还是老的好。
-----------------------------------------------------------------------

发现装了UV4,原来的UV3打开UV3的工程就不能编译通过了,应该是UV4设置了什么路径,使得UV3找不到原来的路径了。这个有什么解决办法?先装UV4再装UV3?
(因为CM0的缘故不得不装UV4)

出0入0汤圆

发表于 2010-3-12 09:29:05 | 显示全部楼层
装了MDK4之后编译速度比以前慢了很多

出0入0汤圆

发表于 2010-3-12 09:32:37 | 显示全部楼层
(因为CM0的缘故不得不装UV4)

同样原因, 而且是不得不升级了 ulink2 .

出0入0汤圆

发表于 2010-4-26 20:56:32 | 显示全部楼层
看看这里这不是我勾上了?

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

本版积分规则

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

GMT+8, 2024-5-20 18:40

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

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