搜索
bottom↓
回复: 13

STM32跑CoreMark,MDK编译优化得分总是远低于IAR优化,和解?

[复制链接]

出0入0汤圆

发表于 2017-6-21 10:05:07 | 显示全部楼层 |阅读模式
        昨晚移植了下coremark到STM32平台上,用的CUBEMX生成的MDK V5的代码,移植很简单,按照网上ST官方给出的移植方法,printf和TICK这些没问题,coremark也就移植好了,不过网上我搜到的coremark STM32的移植包括ST官方的都是无一例外的IAR编译优化,在COREMARK官网上,找了一圈公布的得分情况,凡是STM32芯片的也全部都是IAR的。我用MDK V5移植成功,发现无论怎么优化都比官网上公布的用IAR优化的跑分要低20%左右,这个差距很大啊,亲。
       因为COREMARK移植后,用的是MDK的 MICROLIB微库,这个库一般会导致性能降低,因此我取消了微库,用了重定向retarget.c文件,加上了semihosting的选项,程序能够正常跑并printf也输出了,但是得分依旧是老样子,还是比IAR优化要低20%左右,无论怎么优化选项,TIME优化 -0 -1 -2 -3,都是远远不如IAR
       我就纳闷了,按理MDK编译效率绝对不差啊,怎么这个跑分能相差这么多呢,难道大家跑coremark全是用IAR吗

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

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

出0入0汤圆

发表于 2017-6-21 10:43:19 | 显示全部楼层
装MDK 5.23用V6.6 编译器试试,V6用的是全新Clang+LLVM内核,据说性能会提升

出0入0汤圆

 楼主| 发表于 2017-6-21 11:05:55 | 显示全部楼层
ilcvm 发表于 2017-6-21 10:43
装MDK 5.23用V6.6 编译器试试,V6用的是全新Clang+LLVM内核,据说性能会提升

我昨晚这个方法也试过了,我现在用的就是最新的V5.23,选择新的编译器之后,编译大量报错啊,根本通不过啊   
      我怎么也不相信ARM自家的MDK优化会这么挫啊,相差个百分之几还信,能差20%根本不对啊,到底是哪里问题就是搞不清,所以看网上全是清一色的IAR,难道大家都没有去折腾MDK找原因吗

出0入0汤圆

发表于 2017-6-21 11:22:35 | 显示全部楼层
JackFrost 发表于 2017-6-21 11:05
我昨晚这个方法也试过了,我现在用的就是最新的V5.23,选择新的编译器之后,编译大量报错啊,根本通不过 ...

V5的ARMCC内核跟V6是有不少地方不同,但如果你没有用太多ARMCC的独有特性的话把代码改成V5,V6通用应该也不难,尤其两者都是用同一个linker的

出40入42汤圆

发表于 2017-6-21 11:27:16 | 显示全部楼层
MDK编译效率比IAR差,难道不是业界通识?

出0入0汤圆

发表于 2017-6-21 12:13:18 | 显示全部楼层
ilcvm 发表于 2017-6-21 10:43
装MDK 5.23用V6.6 编译器试试,V6用的是全新Clang+LLVM内核,据说性能会提升

V66编译,用CUBE MX生成的框架程序,报错ArmClang.exe: error: unsupported option '--C99'

出0入0汤圆

发表于 2017-6-21 12:18:02 | 显示全部楼层
appleboy 发表于 2017-6-21 12:13
V66编译,用CUBE MX生成的框架程序,报错ArmClang.exe: error: unsupported option '--C99'

V6.6的C99选项是-std=c99,其实在MDK选了V6.6的选项就不会有'--C99'在编译命令里,而且在V5也应该是用'--c99'

出0入0汤圆

发表于 2017-6-21 12:28:08 | 显示全部楼层
ilcvm 发表于 2017-6-21 12:18
V6.6的C99选项是-std=c99,其实在MDK选了V6.6的选项就不会有'--C99'在编译命令里,而且在V5也应该是用'-- ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-6-21 12:29:40 | 显示全部楼层
MDK 我记得一直是比不上IAR的

出0入0汤圆

发表于 2017-6-21 13:16:54 | 显示全部楼层

把那个--C99删掉,然后Language C那里选C99

出0入0汤圆

发表于 2017-6-22 16:06:38 | 显示全部楼层
ilcvm 发表于 2017-6-21 13:16
把那个--C99删掉,然后Language C那里选C99

不行的,都试过的。
cubeMX生成的框架是一定无法编译成功的,除非自己写代码

出0入0汤圆

发表于 2017-6-22 17:15:09 | 显示全部楼层
落叶知秋 发表于 2017-6-21 11:27
MDK编译效率比IAR差,难道不是业界通识?

你应该是2楼啊,

出40入42汤圆

发表于 2017-6-22 20:34:15 | 显示全部楼层
linghu2 发表于 2017-6-22 17:15
你应该是2楼啊,

二楼与我只有1个小时的距离

出0入0汤圆

发表于 2017-6-23 10:33:28 | 显示全部楼层
appleboy 发表于 2017-6-22 16:06
不行的,都试过的。
cubeMX生成的框架是一定无法编译成功的,除非自己写代码 ...

但不会再是ArmClang.exe: error: unsupported option '--C99'这个提示。至于cubeMX不能成功编译,估计是对V6编译器的兼容性不好。不过ST的软件一直觉得不靠谱,他们家最新版本的USB On-The-Go Host and Device Library v2.2.2的只有IAR的项目文件就算了,居然头文件里都有一堆错,不修改根本没法通过编译。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 03:03

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

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