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

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

[复制链接]
党国特派员 发布时间:2016-11-18 13:05
本帖最后由 党国特派员 于 2016-11-18 17:15 编辑 7 o8 t$ N, [& {6 u+ A

! i8 v+ K" A4 h. n# w首先感谢ST,感谢社区,有幸拿幸运奖,拿了二块开发板。, Y. m  e2 q- o
随着Cortex-M23、Cortex-M33内核的推出,ARM的MDK又长级了,我也追上这个版本,下载试用,主要是体验下最新的ARM Compiler 6.6,之前早听说了CLang和LLVM也大概的了解些,虽然云里雾里,但是总体感觉就是编译速度快的不是一点,就好比汽车和火箭的区别。是真的嘛,今天就来体验一把。(还不知道Clang和LLVM的自行百度脑补)。
2 ]( G3 o, ]* \刚好手上有开发板,就测式下,这次选用的是NUCLEO-STM32F042的开发板,项目就随便开个项目(GPIO,USART)都可以。% ]1 c/ F0 C5 G+ V& `
使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)" [; ~, y/ T0 H- _! W. ~7 a4 m& Z
QQ图片20161118121743.png
" Q3 d/ `, w! [# b配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器) ~3 |" y0 e) w
QQ图片20161118122049.png QQ图片20161118123021.png
! ]* J3 M- ]( F  O5 \2 X4 }9 P配置C/C++的选项
& C* Z" @) y" o% e) _8 r2 B! } QQ图片20161118122242.png QQ图片20161118123213.png , h' S6 e2 m1 c% L1 ]) n
配置完成后点OK,然后编译项目2 |7 i# c  a7 e  P. g
QQ图片20161118122427.png
1 Q" b; w' U+ |: {* x, K. ^编译的时候选择Rebuild,保证每次都是全部重新编译。
+ ?9 G: ]  U. j6 a: R看下V5.06的编译结果
4 u5 j4 ~- F! v: N% F; F1 q QQ图片20161118122823.png $ C' K# E" u9 D# Q8 W# t+ }0 p
V6.6的编结果
4 i' M; `0 P! G' p QQ图片20161118123458.png
# D- L8 X) w2 ]: o0 O7 v* ~明显的结果对比 V5编译用了1分29秒,V6只用了24秒,一个天上一个地下。& S6 Q  r9 h2 I
有人说V6编译出来的代码有点大,那我们再选择最大代码优化试试Optimization (-Oz image size)% z# T- H# T0 [
QQ图片20161118124026.png
( @1 l5 P: V/ F9 B7 B4 x* I$ m( N5 I这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。
0 @, r% [4 F  ^5 b* j& K6 K+ N4 y$ H$ q  W/ R! ?

评分

参与人数 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
, u! t# N2 A8 ~+ j$ |& S我看图你两次都是-O3的优化啊
: K& z* W3 q. x! m9 s另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
9 c0 n4 u$ h; D/ {2 I, @' C* _
V5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
党国特派员 回答时间:2016-11-18 17:07:26
奏奏奏 发表于 2016-11-18 16:508 d1 M+ y. a# r9 z1 h) `
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,
0 C3 o& A9 d5 B3 d) O但是改回默 ...
7 f* e! I( Z2 E! h
V6的话,你可以试试其它的几个编译选项。。。
党国特派员 回答时间:2016-11-30 11:36:44
wofei1314 发表于 2016-11-30 10:271 u" O  _+ n) v2 U: Z& w% r6 ^
请教一下,按照你的设置,提示这个错误,咋解决?
2 ]" ?# s: i: L  F: j; S" C+ p4 L  j6 |( i) `( {3 V/ R1 Q
ArmClang.exe: error: unsupported option '--C99'
! e5 x3 F% I- A' q7 A3 J
用V6.6 把--c99这个选项要去掉。
zero99 回答时间:2016-11-18 14:08:42
感谢支持
moyanming2013 回答时间:2016-11-18 15:13:51
我看图你两次都是-O3的优化啊
. k+ m/ B& C& B- w4 a9 s另外你把gnu99换成c99再和V5的编译器结果对比下看看
党国特派员 回答时间:2016-11-18 15:46:15
moyanming2013 发表于 2016-11-18 15:13! B! {: G; |: I2 t
我看图你两次都是-O3的优化啊* }1 A8 }1 J+ l" N9 N$ L
另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...

/ ?6 j- i0 [7 `+ hV6 换C99编译要报错。编译通不过。
奏奏奏 回答时间:2016-11-18 16:50:52
本帖最后由 奏奏奏 于 2016-11-18 16:59 编辑 # \! k, B- q; `0 j. T5 @9 G
; d- |( z( {  |5 S/ p& ?, h% `
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,; T5 w' t: F* t. [' A
但是改回默认的就不会报错。很奇怪。& L8 i7 Q1 S" V9 q3 ~. B# x
moyanming2013 回答时间:2016-11-18 17:55:28
党国特派员 发表于 2016-11-18 15:46
( e8 Y# E5 Y& j" M( C" {& qV6 换C99编译要报错。编译通不过。
" X4 [; Z  D: ?2 v& P% c
有C11吗?
moyanming2013 回答时间:2016-11-18 18:03:12
党国特派员 发表于 2016-11-18 15:46
4 s' U" Z6 f) O& @' b) P7 b9 ?V6 换C99编译要报错。编译通不过。
1 n9 Q) k; \  b+ B! N0 X" N$ ^
这种问题连ST都没测试吗
党国特派员 回答时间:2016-11-19 12:37:07
moyanming2013 发表于 2016-11-18 17:55
0 E2 x2 Y1 C( L有C11吗?
  O8 s3 x+ l: `% ?( C% G. K
C11有,我没有测试,我测试gnu99是没有问题的。
党国特派员 回答时间:2016-11-19 12:37:41
moyanming2013 发表于 2016-11-18 18:03# m9 Z& t; p# @
这种问题连ST都没测试吗

, n: {5 G5 ~4 A+ @; z5 D5 \, I有可能吧,C/C++有好些标准。
zhangxu56726 回答时间:2016-11-19 13:51:36
给个链接下载啊
小小超 回答时间:2016-11-19 14:07:08
支持一下!!!
zbber 回答时间:2016-11-19 14:31:10
好帖子顶一顶!感谢楼主
2 t$ I* G2 s1 f3 x% u
zengyi703-16313 回答时间:2016-11-20 08:26:31
有空体验一下
1234下一页

所属标签

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