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

2019-12-27 18:49发布

        昨晚移植了下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吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
ilcvm
1楼-- · 2019-12-28 00:48
 精彩回答 2  元偷偷看……
JackFrost
2楼-- · 2019-12-28 03:06
ilcvm 发表于 2017-6-21 10:43
装MDK 5.23用V6.6 编译器试试,V6用的是全新Clang+LLVM内核,据说性能会提升

我昨晚这个方法也试过了,我现在用的就是最新的V5.23,选择新的编译器之后,编译大量报错啊,根本通不过啊   
      我怎么也不相信ARM自家的MDK优化会这么挫啊,相差个百分之几还信,能差20%根本不对啊,到底是哪里问题就是搞不清,所以看网上全是清一 {MOD}的IAR,难道大家都没有去折腾MDK找原因吗
ilcvm
3楼-- · 2019-12-28 04:48
JackFrost 发表于 2017-6-21 11:05
我昨晚这个方法也试过了,我现在用的就是最新的V5.23,选择新的编译器之后,编译大量报错啊,根本通不过 ...

V5的ARMCC内核跟V6是有不少地方不同,但如果你没有用太多ARMCC的独有特性的话把代码改成V5,V6通用应该也不难,尤其两者都是用同一个linker的
落叶知秋
4楼-- · 2019-12-28 09:48
MDK编译效率比IAR差,难道不是业界通识?
appleboy
5楼-- · 2019-12-28 13:22
ilcvm 发表于 2017-6-21 10:43
装MDK 5.23用V6.6 编译器试试,V6用的是全新Clang+LLVM内核,据说性能会提升

V66编译,用CUBE MX生成的框架程序,报错ArmClang.exe: error: unsupported option '--C99'
ilcvm
6楼-- · 2019-12-28 15:24
 精彩回答 2  元偷偷看……

一周热门 更多>