只要STM32或者其他32位单片机,自带FPU功能,就可以加速float类型数据的加减乘除运算。
在STM32中要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1) && (__FPU_USED == 1)


在keil的魔术棒中,如上图所示,直接选中单精度浮点运算器,keil就会自动把所需的宏给定义出来。如何验证是否开启成功?
. z. ~/ |* ~1 ?
验证方法1:
运行单片机程序,不选中/选中FPU,分别做10万次乘法:发现耗时不同,则说明开启FPU成功了。
# x& g8 C/ p# Y: ~e: K4 T
验证方法2:; U. o+ ~/ h6 _6 r+ O
进入debug模式,或者直接查看汇编文件,发现C语言乘法运算,被编译成了V打头的汇编乘法命令,说明开启成功。/ e2 J: V# P9 k" |+ c" f% P

FPU只能加速float的基本运算,还有一些数学函数,不是光靠FPU就能加速的,例如sin、cos、等函数,ARM,ST,GD,APM等厂商提供了优化过的三角函数等,建议直接使用。
-
单片机
+关注
关注
6074文章
45341浏览量
663715 -
FPU
+关注
关注
0文章
46浏览量
22722 -
运算效率
+关注
关注
0文章
2浏览量
5462
发布评论请先 登录
如何提高位运算效率
单片机教程十一:单片机算术运算指令、单片机逻辑运算类指令
单片机学习入门之单片机基础知识详细资料概述
提高单片机编程效率的基本小技巧
《电子DIY》之《单片机实践项目》之基于单片机的简易数字秒表的设计(Proteus仿真与实物制作)
《电子DIY》之《单片机实践项目》之基于单片机的电子时钟设计与制作(基于单片机的万年历的设计与制作)

如何提高单片机的运算效率之FPU
评论