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

f4675782ea14ed0c2a2d3cba8b98c4ee.png

只要STM32或者其他32位单片机,自带FPU功能,就可以加速float类型数据的加减乘除运算。

在STM32中要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1) && (__FPU_USED == 1)

1ca67f828dcacd3e5349ffe38de8b804.png

65dbcf58b6178b4ef25fe6356a1573d6.png

在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

f5a0a5db3a157391121fc9564e4e401d.png

FPU只能加速float的基本运算,还有一些数学函数,不是光靠FPU就能加速的,例如sin、cos、等函数,ARM,ST,GD,APM等厂商提供了优化过的三角函数等,建议直接使用。

素材来源:ST官方

==========

往期回顾:

【项目陪跑--无线CAN转发器】第一章 课程概述

【通知】上市公司嵌入式工程师带队授课,成品展示~~

蓝桥杯物联网教程汇总_240529

==========

3161689a2c4732afef92e624780a77e9.png

adb765f3715b216246d3a3cd6c40c346.png

382ad01340680cac235438b01178a0b2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值