|
本帖最后由 党国特派员 于 2016-11-18 17:15 编辑 3 P- ~: Q; R6 g+ q 首先感谢ST,感谢社区,有幸拿幸运奖,拿了二块开发板。9 T0 @$ b+ i" \ u7 u% W1 b8 Q' O8 T, I 随着Cortex-M23、Cortex-M33内核的推出,ARM的MDK又长级了,我也追上这个版本,下载试用,主要是体验下最新的ARM Compiler 6.6,之前早听说了CLang和LLVM也大概的了解些,虽然云里雾里,但是总体感觉就是编译速度快的不是一点,就好比汽车和火箭的区别。是真的嘛,今天就来体验一把。(还不知道Clang和LLVM的自行百度脑补)。; D- i+ I% z: G" v 刚好手上有开发板,就测式下,这次选用的是NUCLEO-STM32F042的开发板,项目就随便开个项目(GPIO,USART)都可以。 使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)
配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器; H5 H0 g* X G- R
配置C/C++的选项6 b- ]+ M+ ^, F( i! f
配置完成后点OK,然后编译项目
编译的时候选择Rebuild,保证每次都是全部重新编译。0 v8 [1 W- c9 p( H 看下V5.06的编译结果6 d( `. S4 d$ Q) l
V6.6的编结果
明显的结果对比 V5编译用了1分29秒,V6只用了24秒,一个天上一个地下。3 [; q7 [9 Q( p7 B7 p* X 有人说V6编译出来的代码有点大,那我们再选择最大代码优化试试Optimization (-Oz image size)9 b9 x4 E1 x- v/ c& ~4 e2 ^7 p* j: C
这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。6 O1 L' y. w# l) R" l4 t: O . B7 s7 [ N" C |
微信公众号
手机版
V5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
V6的话,你可以试试其它的几个编译选项。。。
用V6.6 把--c99这个选项要去掉。
另外你把gnu99换成c99再和V5的编译器结果对比下看看
V6 换C99编译要报错。编译通不过。
9 x0 b- w J$ c. [9 e
看了才知道要自己选的
但是改回默认的就不会报错。很奇怪。9 K6 a& z9 E5 ^+ G& }; v
有C11吗?
这种问题连ST都没测试吗
C11有,我没有测试,我测试gnu99是没有问题的。
有可能吧,C/C++有好些标准。