OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9688|回复: 5

FPU宏__FPU_PRESENT问题

[复制链接]

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-3-12
在线时间
1 小时
发表于 2015-4-2 16:15:17 | 显示全部楼层 |阅读模式
5金钱
想请教一下我在使用FPU的时候,程序时必须在图中Define处添加”__FPU_PRESENT =1", 否则就会在”core_cm4.h“的代码中出现“Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)",根据警告的意思,是__FPU_PRESENT为0了,可是在”stm32f4xx.h“中明明已经有定义” #define __FPU_PRESENT       “ 请问这是为何?       

最佳答案

查看完整内容[请看2#楼]

好吧  问题解决了,我成了自问自答了,这里分享一下对这个问题的理解吧,希望以后遇到类似情况的朋友们能够解决问题。 本来是想使用STM32提供的DSP库文件,发现库文件庞大,实际使用就只挑了几个用到的文件而没有添加整个库文件(.lib文件,如果是添加库.lib文件就不会出现这个警告,我猜是.lib文件已经按照使用FPU的定义编译过了,如果是直接添加计算源文件,如只添加"arm_sin_cos_f32.c",就要注意后面说的解决办法了 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-3-12
在线时间
1 小时
 楼主| 发表于 2015-4-2 16:15:18 | 显示全部楼层
好吧  问题解决了,我成了自问自答了,这里分享一下对这个问题的理解吧,希望以后遇到类似情况的朋友们能够解决问题。
本来是想使用STM32提供的DSP库文件,发现库文件庞大,实际使用就只挑了几个用到的文件而没有添加整个库文件(.lib文件,如果是添加库.lib文件就不会出现这个警告,我猜是.lib文件已经按照使用FPU的定义编译过了,如果是直接添加计算源文件,如只添加"arm_sin_cos_f32.c",就要注意后面说的解决办法了),单个库文件添加后,必须在全局定义里定义“ __FPU_PRESENT= 1”注意必须加等号,(和define的格式不太一样啊,有谁知道这个为啥这么奇怪)否则因为添加的源文件包含的两个头文件"arm_math.h"和“math.h”都没有包含“stm32f4xx.h”头文件,所以头文件中的“#define __FPU_PRESENT       1” 没有编译到"arm_sin_cos_f32.c"中,会使程序定义" #define __FPU_USED       0",导致FPU关闭。所以解决办法也可以在"arm_math.h"和“math.h”或者源文件中添加“#include “stm32f4xx.h”  ”解决。
回复

使用道具 举报

6

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-3-12
在线时间
1 小时
 楼主| 发表于 2015-4-2 18:27:09 | 显示全部楼层
刚刚看到编译的时候只会在DSP函数处出现警告,想问问原子哥在使用DSP库的时候必须添加”__FPU_PRESENT =1“的全局宏吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-4-2 22:41:57 | 显示全部楼层
回复【3楼】crimsonblood:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2018-1-30
在线时间
44 小时
发表于 2018-5-27 22:13:40 | 显示全部楼层
感谢分享
回复

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2019-5-9
在线时间
10 小时
发表于 2019-7-30 17:59:36 | 显示全部楼层
crimsonblood 发表于 2015-4-2 18:27
刚刚看到编译的时候只会在DSP函数处出现警告,想问问原子哥在使用DSP库的时候必须添加”__FPU_PRESENT&nbsp ...

应该是的,4年多以后我遇到了和你同样的问题,只加入dsp的.lib库,不加全局宏定义,依然会报错,所以这条宏定义是必须加上的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 14:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表