本帖最后由 党国特派员 于 2016-11-18 17:15 编辑 ' V* q0 |; j; p" i {( {3 k 6 f- j* B0 L8 t% {5 \9 g 首先感谢ST,感谢社区,有幸拿幸运奖,拿了二块开发板。/ y7 r7 F% B7 p: [ 随着Cortex-M23、Cortex-M33内核的推出,ARM的MDK又长级了,我也追上这个版本,下载试用,主要是体验下最新的ARM Compiler 6.6,之前早听说了CLang和LLVM也大概的了解些,虽然云里雾里,但是总体感觉就是编译速度快的不是一点,就好比汽车和火箭的区别。是真的嘛,今天就来体验一把。(还不知道Clang和LLVM的自行百度脑补)。/ M" e+ G, H% v, U7 f7 K 刚好手上有开发板,就测式下,这次选用的是NUCLEO-STM32F042的开发板,项目就随便开个项目(GPIO,USART)都可以。 使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)$ E& P, H6 {5 U" k2 \ 配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器 配置C/C++的选项 配置完成后点OK,然后编译项目* \6 \8 k9 c [* c! e! e2 v 编译的时候选择Rebuild,保证每次都是全部重新编译。* A, U) h+ q4 T0 ~" C# D 看下V5.06的编译结果3 |, U d6 i$ B6 Q1 r2 |! D0 g. A V6.6的编结果" s5 S0 H F! z+ J0 u; Z. F6 W 明显的结果对比 V5编译用了1分29秒,V6只用了24秒,一个天上一个地下。 有人说V6编译出来的代码有点大,那我们再选择最大代码优化试试Optimization (-Oz image size) 这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。! p" p6 ~* D" t% F ' c2 |3 n9 i' v4 m( K |
V5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
V6的话,你可以试试其它的几个编译选项。。。
用V6.6 把--c99这个选项要去掉。
另外你把gnu99换成c99再和V5的编译器结果对比下看看
V6 换C99编译要报错。编译通不过。
$ T6 m; n- R1 ^9 m
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,
但是改回默认的就不会报错。很奇怪。
有C11吗?
这种问题连ST都没测试吗
C11有,我没有测试,我测试gnu99是没有问题的。
有可能吧,C/C++有好些标准。