涉及到的参数:这里以stm32F4 MDK5.2为例
(1)配置开启FPU功能标志
#define __FPU_PRESENT 1U //在stm32f4xx.h 系统已经配置
#define __FPU_USED 1U //这个在core_cm4.h中,需要配置

由图知,要先判断__CC_ARM 是否定义 ,再判断__TARGET_FPU_VFP是否定义,最后判断__FPU_PRESENT是否已经配置为1,前面3个条件都为真的情况下,才配置__FPU_USED=1;其实可以简单化,直接在用户程序中配置__FPU_USED=1即可;
__CC_ARM: #define __CC_ARM //1 有的系统会自己配置
__TARGET_FPU_VFP:定义设备有FPU功能,所以加入下句:
#define __TARGET_FPU_VFP //1
当然__CC_ARM、__TARGET_FPU_VFP也可以在MDK->Option->C/C++->…中定义,如下图

(2)浮点配置函数在void SystemInit(void)即在system_stm32f4xx.c中
void SystemInit(void)
{
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
#endif
就这一句 其实也可以不配置 __FPU_PRESENT 和 __FPU_PRESENT

本文详细介绍了如何在STM32F4 MDK5.2环境下配置并启用FPU功能,包括设置宏定义、配置浮点运算模式、添加必要的头文件及库文件等步骤。此外,还提供了调试技巧及常见问题解决方案。

1万+

被折叠的 条评论
为什么被折叠?



