你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

感受ARM Compiler 6的威力(MDK 5.22)  

[复制链接]
党国特派员 发布时间:2016-11-18 13:05
本帖最后由 党国特派员 于 2016-11-18 17:15 编辑
$ C" ^( |( f, n% P7 T2 E3 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)都可以。
" g9 D  s: B! `" @使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)
6 o& V, m# f0 |6 m2 v* P$ L QQ图片20161118121743.png ' M' K! |  A( D8 h9 v; ]  C
配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器; H5 H0 g* X  G- R
QQ图片20161118122049.png QQ图片20161118123021.png
# s; p* p" B" M2 \' z4 Y配置C/C++的选项6 b- ]+ M+ ^, F( i! f
QQ图片20161118122242.png QQ图片20161118123213.png ! g: ?/ C( |; B; B9 K' H
配置完成后点OK,然后编译项目
+ Z2 W- [& k4 C) [ QQ图片20161118122427.png / h: }) t0 L$ z* H! \! Q
编译的时候选择Rebuild,保证每次都是全部重新编译。0 v8 [1 W- c9 p( H
看下V5.06的编译结果6 d( `. S4 d$ Q) l
QQ图片20161118122823.png / Y  ?$ j1 s  x1 e
V6.6的编结果
+ B1 ]; y" N3 ~+ S0 w6 J1 i5 g; s: H QQ图片20161118123458.png
. K+ e: O' D+ t) I4 w5 d明显的结果对比 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
QQ图片20161118124026.png , p$ W8 g) C" b" T4 V2 |0 l! O, Q' @
这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。6 O1 L' y. w# l) R" l4 t: O
. B7 s7 [  N" C

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

赞 收藏 3 评论47 发布时间:2016-11-18 13:05

举报

47个回答
党国特派员 回答时间:2016-11-18 15:48:04
moyanming2013 发表于 2016-11-18 15:13. ^2 H5 n& J* W$ }. I& S% m
我看图你两次都是-O3的优化啊
9 B: p' c3 M$ }4 ?% L% b* t) N, ]另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
7 ?- v+ p7 o4 u8 {+ A  x$ m
V5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
党国特派员 回答时间:2016-11-18 17:07:26
奏奏奏 发表于 2016-11-18 16:50& Z' g; \: L+ b4 |8 d
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,
2 p+ P: n( |+ }. u但是改回默 ...
" |( u/ m: p( d
V6的话,你可以试试其它的几个编译选项。。。
党国特派员 回答时间:2016-11-30 11:36:44
wofei1314 发表于 2016-11-30 10:27" U$ ]! B0 b  A7 n' i
请教一下,按照你的设置,提示这个错误,咋解决?
0 [' o8 m5 z7 z8 h( c* q' y* g6 }9 j8 _) H: {2 j% n2 ]" M
ArmClang.exe: error: unsupported option '--C99'

+ k7 R, N) N9 c用V6.6 把--c99这个选项要去掉。
zero99 回答时间:2016-11-18 14:08:42
感谢支持
moyanming2013 回答时间:2016-11-18 15:13:51
我看图你两次都是-O3的优化啊8 d  H- C# m3 f% [4 {
另外你把gnu99换成c99再和V5的编译器结果对比下看看
党国特派员 回答时间:2016-11-18 15:46:15
moyanming2013 发表于 2016-11-18 15:13* v: G0 p* F" x  F
我看图你两次都是-O3的优化啊
; `7 b- m! ~6 ?- n% H* C: i另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
# R- w4 X+ C- ~& Z# p, f
V6 换C99编译要报错。编译通不过。
奏奏奏 回答时间:2016-11-18 16:50:52
本帖最后由 奏奏奏 于 2016-11-18 16:59 编辑 4 {$ F+ e" d8 u, L& P/ \# U7 ?
9 x0 b- w  J$ c. [9 e
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,0 @# a5 X9 y1 m% E9 I/ u8 m
但是改回默认的就不会报错。很奇怪。9 K6 a& z9 E5 ^+ G& }; v
moyanming2013 回答时间:2016-11-18 17:55:28
党国特派员 发表于 2016-11-18 15:467 n- `. G# P6 k! L
V6 换C99编译要报错。编译通不过。

8 C, P! _6 D7 S1 e- C% s6 ^$ `, ^/ M有C11吗?
moyanming2013 回答时间:2016-11-18 18:03:12
党国特派员 发表于 2016-11-18 15:46- @) W! r6 C- l
V6 换C99编译要报错。编译通不过。
2 @* {2 ]4 d  K# A' b. t
这种问题连ST都没测试吗
党国特派员 回答时间:2016-11-19 12:37:07
moyanming2013 发表于 2016-11-18 17:551 V6 ?2 U& i8 m; b1 B
有C11吗?

0 e! G. v1 o0 X9 K( e9 K0 kC11有,我没有测试,我测试gnu99是没有问题的。
党国特派员 回答时间:2016-11-19 12:37:41
moyanming2013 发表于 2016-11-18 18:03& O" N' p# L2 \( Z
这种问题连ST都没测试吗

% s) ~/ }7 M9 L  L& R. Z2 S有可能吧,C/C++有好些标准。
zhangxu56726 回答时间:2016-11-19 13:51:36
给个链接下载啊
小小超 回答时间:2016-11-19 14:07:08
支持一下!!!
zbber 回答时间:2016-11-19 14:31:10
好帖子顶一顶!感谢楼主0 ]- z! b( S. B  x
zengyi703-16313 回答时间:2016-11-20 08:26:31
有空体验一下
1234下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版