前言:
我之前使用的是默认版本的,但是最近在写代码,发现这个版本太老了还是怎么样,用sqrt()竟然会跑飞,网上查了好多资料,只能试试升级编译器版本来试试,现在是能用了,记录一下怎么升级的。
没升级之前是这些的编译器版本,下面这张图是我升级之后的,有了最下面的V6.16
接下来就是安装编译器V6.16就行了,我这篇帖子也是参考下面这个链接的,可以从他那里下载资料,也可以从官网上下载。
https://blog.csdn.net/baidu_41704597/article/details/131723098
按照这个帖子做了之后,就可以看到上面那个图的v6.16了,但是如果你是从V5写的代码,然后现在用V6.16编译就会报一堆错!所以我们要在以下几个地方改一下,就可以正常编译了。
步骤1:
在Define填 USE_STDPERIPH_DRIVER,STM32F40_41xxx,
在Misc Controls填 -mcpu=cortex-m4
步骤2:
打开文件 ../../Libraries/CMSIS/Include/core_cmFunc.h
找到629行,将
__ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc");
替换为
__ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "memory");
到这里基本就可以了,也许你接下来还会报因为写的是中文的警告,可以将中文的替换成为英文就可以了。