mdk 使用arm complier v6开启FPU报错问题

网上很多教程都有写stm32如何开启FPU,比如这篇(https://blog.csdn.net/Stduo/article/details/78669079),写的比较详细,但是时代在进步,当我们使用新版的mdk配上arm complier v6版本后,v5版本的一些内容可能就要做更改

    我在使用arm complier v6按照教程开启fpu,遇到一些问题,故在此和大家分享一下。

    首先按照我贴的那篇文章中所写,需要以下操作:

在C/C++选项卡中添加__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM,并使用英文符逗号隔开

- __FPU_PRESENT=1 //打开FPU

- __TARGET_FPU_VFP //要求编译出的文件使用FPU功能

- ARM_MATH_CM4 //没有”ARM_MATH_CM4”符号,在编译时将会提示找不到”armcm4.h”文件

- __CC_ARM //__CC_ARM是不同编译器的编译配置宏定义,__CC_ARM就是代表MDK开发环境

————————————————

 

按照以上步骤配置完成后,使用arm complier v6编译会报出大量错误,基本都是下图中的错误。

 

那么为什么呢,在mdk Arm Complier Migration and Compatibility 6.12中可以看到v5和v6版本的不同,

 

如下,

可以看到,v5版本是使用armcc编译,而v6版本使用的是基于Clang和LLVM的armclang,所以你在C/C++中定义__CC_ARM,使用v6编译,肯定会报错,

故我们将定义更改为__CLANG_ARM,如此就可以解决了。

同时可以看到,在mdk的pack自带的core_cm4.h中,有如下代码:

故如果想开启fpu,只需定义ARM_MATH_CM4,__FPU_PRESENT,__ARM_FP,__CLANG_ARM就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值