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

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

[复制链接]
党国特派员 发布时间:2016-11-18 13:05
本帖最后由 党国特派员 于 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)都可以。
0 Q& w7 O  ]$ ^( R2 q使用STM32CubeMX生成基本的USART框架,就随便添加点代码。(不添加代码也是可以的)$ E& P, H6 {5 U" k2 \
QQ图片20161118121743.png
$ ^% [; s# Q  A' m% z6 q% N配置编译器选项,分别选择V5.06 update4和V6.6。看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器
' W0 ~3 V' }! J. q/ I! l QQ图片20161118122049.png QQ图片20161118123021.png ( f5 t" {# ^" m
配置C/C++的选项
* i& r) T( p* F9 r- @ QQ图片20161118122242.png QQ图片20161118123213.png
% x% H2 }  J1 R  I/ K配置完成后点OK,然后编译项目* \6 \8 k9 c  [* c! e! e2 v
QQ图片20161118122427.png ) b( V# b/ r8 L7 @* {
编译的时候选择Rebuild,保证每次都是全部重新编译。* A, U) h+ q4 T0 ~" C# D
看下V5.06的编译结果3 |, U  d6 i$ B6 Q1 r2 |! D0 g. A
QQ图片20161118122823.png , _, N. Y6 i, d9 ?
V6.6的编结果" s5 S0 H  F! z+ J0 u; Z. F6 W
QQ图片20161118123458.png % J/ T8 M5 \' F: t* g
明显的结果对比 V5编译用了1分29秒,V6只用了24秒,一个天上一个地下。
% [/ w3 A7 ~/ U3 f1 q1 v* B有人说V6编译出来的代码有点大,那我们再选择最大代码优化试试Optimization (-Oz image size)
; v; |' s. r: a. j' W QQ图片20161118124026.png   H8 |2 \  G+ [: O' P2 G
这次Rebuild只用了15秒,代码明显减小了,但是还没有达到V5的那么小。我觉得也可以了。V6出现了96个警告,可能是C99和gnu99标准不一样吧。! p" p6 ~* D" t% F
' c2 |3 n9 i' v4 m( K

评分

参与人数 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  m+ D# o* a" I/ g8 ^* y, t; R
我看图你两次都是-O3的优化啊$ y1 A* S) H6 R$ N, y
另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...

$ [4 N4 T* Y$ ]: G% eV5 和 V6选择-O3优化,V5用时1分29秒 V6用时24秒,都是全编译。
党国特派员 回答时间:2016-11-18 17:07:26
奏奏奏 发表于 2016-11-18 16:50
3 F# z2 T+ b+ T2 h. w3 f% h看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,
, B  q* Y1 a5 I* F  m4 |/ f/ O+ M  e2 b但是改回默 ...
+ L0 j. D+ H$ |5 c( t# P
V6的话,你可以试试其它的几个编译选项。。。
党国特派员 回答时间:2016-11-30 11:36:44
wofei1314 发表于 2016-11-30 10:27( e& ]- F4 m( g
请教一下,按照你的设置,提示这个错误,咋解决?2 {& k. N$ [6 p4 C0 e  _- s
  W: m& a7 m! W3 O, r4 f
ArmClang.exe: error: unsupported option '--C99'
6 W0 h* m2 {/ v7 b
用V6.6 把--c99这个选项要去掉。
zero99 回答时间:2016-11-18 14:08:42
感谢支持
moyanming2013 回答时间:2016-11-18 15:13:51
我看图你两次都是-O3的优化啊
+ n0 G  }) M5 o9 r" {( Z: q另外你把gnu99换成c99再和V5的编译器结果对比下看看
党国特派员 回答时间:2016-11-18 15:46:15
moyanming2013 发表于 2016-11-18 15:13
1 ^1 b) U, @9 E8 ?; ?我看图你两次都是-O3的优化啊
9 x+ |# k' X% F  i! Y" @$ C$ M另外你把gnu99换成c99再和V5的编译器结果对比下看看 ...
, j9 p$ t' s. V/ V* o' l
V6 换C99编译要报错。编译通不过。
奏奏奏 回答时间:2016-11-18 16:50:52
本帖最后由 奏奏奏 于 2016-11-18 16:59 编辑
3 G- l4 O1 A; a9 i& t$ T6 m; n- R1 ^9 m
看了才知道要自己选的自己动手试了一下LwIP的例程,按照楼主的设置报错不能生成目标文件,
! y: f# _+ a0 V# y  d, r$ r6 A, y但是改回默认的就不会报错。很奇怪。
/ W1 X2 F; t) l+ f+ f; [1 i
moyanming2013 回答时间:2016-11-18 17:55:28
党国特派员 发表于 2016-11-18 15:46
% e2 x3 ^+ I9 c  YV6 换C99编译要报错。编译通不过。
( |) s6 `7 `! d
有C11吗?
moyanming2013 回答时间:2016-11-18 18:03:12
党国特派员 发表于 2016-11-18 15:46
4 `) O# W" Y& i- ?0 I- S* CV6 换C99编译要报错。编译通不过。

. u- D3 e9 B  K这种问题连ST都没测试吗
党国特派员 回答时间:2016-11-19 12:37:07
moyanming2013 发表于 2016-11-18 17:55/ F! E% U0 p) T1 F! F: {
有C11吗?

7 J% _* o, ?4 XC11有,我没有测试,我测试gnu99是没有问题的。
党国特派员 回答时间:2016-11-19 12:37:41
moyanming2013 发表于 2016-11-18 18:038 H& R! I. u# ~
这种问题连ST都没测试吗

' m) M) R, l7 H& f& [有可能吧,C/C++有好些标准。
zhangxu56726 回答时间:2016-11-19 13:51:36
给个链接下载啊
小小超 回答时间:2016-11-19 14:07:08
支持一下!!!
zbber 回答时间:2016-11-19 14:31:10
好帖子顶一顶!感谢楼主
# o& @2 M  m& q. y$ p+ k+ g* k
zengyi703-16313 回答时间:2016-11-20 08:26:31
有空体验一下
1234下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版