做趟白老鼠,最新版MDK您值得拥有

2019-12-19 18:06发布

之前用5.17编译F4,F1,优化开O3和Speed,一直都没任何问题,最近有个新项目要用F7,就下了F7的Pack,结果很郁闷,优化只能用O0(就是不优化),否则一个Volatile全局变量都能优化出错,不开优化嘛,运行速度又只有60%,约等于是F7变回F4速度。不死心,上Keil下了个最新版本,河蟹后,默认是v5编译,结果还是一个吊样,开始怀疑人生,细看一下工程选项,发现ARM Compiler多了一个V6.7,试试O3编译,下载到板子上,眼前一亮,一点问题都没有,爽!然后试遍各个优化等级,全部通过! 所以说,白老鼠还是值得做一下的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
35条回答
su33691
1楼-- · 2019-12-19 23:04
有时候当当小白鼠也不错。
gwj221
2楼-- · 2019-12-20 00:50
楼主用的哪个版本当白素的
amigenius
3楼-- · 2019-12-20 02:09
 精彩回答 2  元偷偷看……
amigenius
4楼-- · 2019-12-20 03:22
gwj221 发表于 2018-3-16 19:22
楼主用的哪个版本当白素的

前几天在Keil官网下的
擦鞋匠
5楼-- · 2019-12-20 08:07
关注这个问题。

之前我也好奇看过mdk(我的mdk版本是5.23)的option。上面有3个编译选项(我一般都是使用默认的),哪位大神能解释下3个有什么区别和联系(如下图)?

000.png (24.8 KB, 下载次数: 0)

下载附件

2018-3-16 19:50 上传

amigenius
6楼-- · 2019-12-20 12:06
本帖最后由 amigenius 于 2018-3-16 20:42 编辑
擦鞋匠 发表于 2018-3-16 19:51
关注这个问题。

之前我也好奇看过mdk(我的mdk版本是5.23)的option。上面有3个编译选项(我一般都是使用 ...


Default是使用V5的编译器,和选V5.06的一样的(默认用这个),V6开头的是用大名顶顶的Clang,在MDK就是ARMClang,看了ARM官方文档,V5版本的已经停止开发,以后只维护。ARM推荐大家都使用V6版本的编译器,编译速度和优化出来的代码都有优势(因优化而产生Bug的几率减少)。刚才试了一下,V6比V5的编译速度快一倍左右。不过Clang的Warning太多了,要自己手工屏蔽一下(ST的HAL库,默认设置有1600多个Warning,汗....)。

一周热门 更多>