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

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

[复制链接]
党国特派员 发布时间:2016-11-18 13:05
本帖最后由 党国特派员 于 2016-11-18 17:15 编辑
2 z4 o3 A) `/ ?; X; _) s. A. a: \$ c2 k; n' C" ]' N
首先感谢ST,感谢社区,有幸拿幸运奖,拿了二块开发板。: [( r& E3 }8 p, S( {
随着Cortex-M23、Cortex-M33内核的推出,ARM的MDK又长级了,我也追上这个版本,下载试用,主要是体验下最新的ARM Compiler 6.6,之前早听说了CLang和LLVM也大概的了解些,虽然云里雾里,但是总体感觉就是编译速度快的不是一点,就好比汽车和火箭的区别。是真的嘛,今天就来体验一把。(还不知道Clang和LLVM的自行百度脑补)。2 l6 \+ {$ u# u$ n
刚好手上有开发板,就测式下,这次选用的是NUCLEO-STM32F042的开发板,项目就随便开个项目(GPIO,USART)都可以。  l+ P2 M% J/ x7 `" F. r% S5 U
使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)
+ H3 N2 d& K# f# Z8 p QQ图片20161118121743.png
% y1 N7 ~0 u/ `) N9 \7 X配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器
  z  d( G$ G  [. P QQ图片20161118122049.png QQ图片20161118123021.png
1 N* ?+ i8 h- _) u配置C/C++的选项; q2 T2 D# U5 [" M: b7 y
QQ图片20161118122242.png QQ图片20161118123213.png
) |7 a  M3 H7 h! l' [+ }0 O2 \配置完成后点OK,然后编译项目
0 _: M$ @" A/ N5 ^5 v QQ图片20161118122427.png # Z0 \; P+ j5 s
编译的时候选择Rebuild,保证每次都是全部重新编译。& n; c, C6 ~- S, c$ H& w5 }  e$ t
看下V5.06的编译结果
6 c/ n/ U: P+ d# y# @) } QQ图片20161118122823.png ; j/ `( O9 m$ _0 i9 [
V6.6的编结果
% L3 C( c! S0 \- A1 n5 B  s QQ图片20161118123458.png ) x# D2 V% ~6 s( O: ]6 _
明显的结果对比 V5编译用了1分29秒,V6只用了24秒,一个天上一个地下。" z! `: j& M2 n% o. n
有人说V6编译出来的代码有点大,那我们再选择最大代码优化试试Optimization (-Oz image size)
, U# ?1 ?: }+ N2 P$ ^% D+ Y* O8 L QQ图片20161118124026.png 1 w3 A& O8 y8 O1 A# i" |- F
这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。9 S& `' {9 ^2 Z6 p+ q8 m( G7 A( C
8 S0 o. B& }( B  r* ~' W+ U

评分

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

查看全部评分

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

举报

47个回答
党国特派员 回答时间:2016-11-18 15:48:04
moyanming2013 发表于 2016-11-18 15:131 \& {/ A. m# u2 K
我看图你两次都是-O3的优化啊
9 u) \6 X# d0 N  [9 M另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
/ P; f9 H# @. z# Q! O4 I/ K+ T7 Y) ]
V5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
党国特派员 回答时间:2016-11-18 17:07:26
奏奏奏 发表于 2016-11-18 16:50  o& I! ~: P# C1 f
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,: m8 O" K" M5 X8 |( u0 V1 a
但是改回默 ...
( Y5 i1 `( T( v) S5 M5 W
V6的话,你可以试试其它的几个编译选项。。。
党国特派员 回答时间:2016-11-30 11:36:44
wofei1314 发表于 2016-11-30 10:27" I6 j8 R# k5 G1 ?- @7 k& W  A
请教一下,按照你的设置,提示这个错误,咋解决?3 t- l5 B1 I( {( f# E& q7 u; `+ h( h
2 ]; R$ l$ s2 I) b
ArmClang.exe: error: unsupported option '--C99'
# M! y. n, t, y% j# \0 ^
用V6.6 把--c99这个选项要去掉。
zero99 回答时间:2016-11-18 14:08:42
感谢支持
moyanming2013 回答时间:2016-11-18 15:13:51
我看图你两次都是-O3的优化啊0 w9 K9 `; R% D
另外你把gnu99换成c99再和V5的编译器结果对比下看看
党国特派员 回答时间:2016-11-18 15:46:15
moyanming2013 发表于 2016-11-18 15:13
1 ^* _- q9 H* ^. M1 T, @+ ?/ U我看图你两次都是-O3的优化啊  Z& j) f- ?. f2 w; w1 Z1 ]
另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
, Z" {& G) I* [' j* e. X/ u$ j
V6 换C99编译要报错。编译通不过。
奏奏奏 回答时间:2016-11-18 16:50:52
本帖最后由 奏奏奏 于 2016-11-18 16:59 编辑 5 m2 j. ]9 i. U. C8 F/ |/ \

5 B  y5 J$ t0 {, a) y# d! N看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,4 I1 U& j! I  C6 Y0 n: O
但是改回默认的就不会报错。很奇怪。
/ c5 N$ D8 z; z" {7 i
moyanming2013 回答时间:2016-11-18 17:55:28
党国特派员 发表于 2016-11-18 15:46; k% b3 c* H5 M0 t, d; `! r
V6 换C99编译要报错。编译通不过。
. p3 x/ u. G  i$ U+ }" k5 ~8 }
有C11吗?
moyanming2013 回答时间:2016-11-18 18:03:12
党国特派员 发表于 2016-11-18 15:467 A9 b6 {0 H4 J% a) _% T0 m$ e( @
V6 换C99编译要报错。编译通不过。

- S, G% P% X- G9 Q  b这种问题连ST都没测试吗
党国特派员 回答时间:2016-11-19 12:37:07
moyanming2013 发表于 2016-11-18 17:55" t/ _% K% q) p
有C11吗?

5 i- {( ~4 j8 P3 R; oC11有,我没有测试,我测试gnu99是没有问题的。
党国特派员 回答时间:2016-11-19 12:37:41
moyanming2013 发表于 2016-11-18 18:034 ]$ l" d0 |8 M8 u: {8 t  J
这种问题连ST都没测试吗

7 W6 |$ v5 ?" ]2 P* s  K! o有可能吧,C/C++有好些标准。
zhangxu56726 回答时间:2016-11-19 13:51:36
给个链接下载啊
小小超 回答时间:2016-11-19 14:07:08
支持一下!!!
zbber 回答时间:2016-11-19 14:31:10
好帖子顶一顶!感谢楼主5 f$ |1 T; s. _" l! i/ h
zengyi703-16313 回答时间:2016-11-20 08:26:31
有空体验一下
1234下一页

所属标签

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