[STM32F4] 看上去只要选择“Use FPU”就实际使用了内部FPU功能。

[复制链接]
695|9
 楼主| yzzly 发表于 2020-12-11 12:29 | 显示全部楼层 |阅读模式
本帖最后由 yzzly 于 2020-12-11 12:30 编辑

本人Keil 4.70开发环境,STM32F407工程中有一函数,内有许多SIN、COS、SQRT的函数调用,函数执行时间为80uS,看到使用FPU的介绍后,经过一番繁琐的环境设置与文件包含,编译执行,结果时间并没有改善;把文件包含与环境设置去掉,顺手也把“Use FPU”改为“Not Used”,编译执行,时间变成了350uS;有点心慌,不知道哪被弄出问题了,把“Use FPU”选上,时间又回到了80uS。
650675fd2f5b9c37a8.png
coshi 发表于 2021-1-7 14:49 | 显示全部楼层
怎么选上会时间变化这么多
aoyi 发表于 2021-1-7 14:50 | 显示全部楼层
请问FPU是什么功能啊
 楼主| yzzly 发表于 2021-1-7 16:06 | 显示全部楼层
aoyi 发表于 2021-1-7 14:50
请问FPU是什么功能啊

FPU:(Float Point Unit,浮点运算单元)FPU是专用于浮点运算的处理器
drer 发表于 2021-1-7 16:14 | 显示全部楼层
怎么得到的这个时间呢
gwsan 发表于 2021-1-7 16:17 | 显示全部楼层
这个功能可以用在什么地方啊
kxsi 发表于 2021-1-7 16:51 | 显示全部楼层
反复之后时间并没有回到原来的位置啊
 楼主| yzzly 发表于 2021-1-8 13:27 | 显示全部楼层
drer 发表于 2021-1-7 16:14
怎么得到的这个时间呢

用1个IO引脚,函数入口置1,函数出口置0,示波器看脉冲宽度就是函数执行时间。
 楼主| yzzly 发表于 2021-1-8 13:29 | 显示全部楼层
gwsan 发表于 2021-1-7 16:17
这个功能可以用在什么地方啊

用在有大量浮点数运算的地方,最典型的就是三角函数与开方运算。
香水城 发表于 2021-1-8 17:49 | 显示全部楼层
你最好使用ARM提供的DSP库,
你可以参考下 关于STM32浮点运算单元FPU的小话题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

428

主题

1194

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部