电子产业一站式赋能平台

PCB联盟网

搜索
查看: 130|回复: 0
收起左侧

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

[复制链接]

359

主题

364

帖子

2891

积分

三级会员

Rank: 3Rank: 3

积分
2891
发表于 2024-8-14 21:00:00 | 显示全部楼层 |阅读模式

2jfl431qmah64023639227.png

2jfl431qmah64023639227.png

; s4 Z9 q( w) Y0 d: \. x; y% u6 u6 F+ Z9 N4 g3 m
只要STM32或者其他32位单片机,自带FPU功能,就可以加速float类型数据的加减乘除运算。
) A' f8 u1 O: B7 A! l) M% k* @; G$ ]8 g! G% }8 F. q5 p2 |1 w
在STM32中要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1) && (__FPU_USED == 1)5 G* c, U# k; A: T

m4rxlkxhmal64023639327.png

m4rxlkxhmal64023639327.png
8 Q- T. \, o7 l7 k+ ^$ _5 Z8 `) j
, c# F" Q( J4 ?# {

+ m$ U3 |6 _9 G# `! u

e5d1dep1lb164023639427.png

e5d1dep1lb164023639427.png
- v6 Z( @, x, k' `

8 o# g4 j/ t& v0 \) P  t8 C9 I在keil的魔术棒中,如上图所示,直接选中单精度浮点运算器,keil就会自动把所需的宏给定义出来。如何验证是否开启成功?( T/ j: u" N2 A* o- z
. z. ~/ |* ~1 ?6 E) @+ B: I+ t( \. p
验证方法1:) O4 f6 A# C- b& l* F2 m
运行单片机程序,不选中/选中FPU,分别做10万次乘法:发现耗时不同,则说明开启FPU成功了。( o/ q/ V5 ]! F3 L6 d/ h5 |
# x& g8 C/ p# Y: ~  e: K4 T
8 C. B1 X/ w% |0 G: \$ e! |! X2 X4 f验证方法2:; U. o+ ~/ h6 _6 r+ O7 i5 P+ ~; t" Y
进入debug模式,或者直接查看汇编文件,发现C语言乘法运算,被编译成了V打头的汇编乘法命令,说明开启成功。/ e2 J: V# P9 k" |+ c" f% P
& h4 K4 l+ e" M0 `  I- ~5 n+ {( J1 ^- M0 n5 Z/ y# P

uwcrkhhg4l264023639527.png

uwcrkhhg4l264023639527.png
9 i) S! N9 n' @' X, y4 @

8 h1 }9 n$ S+ \" {& W' _5 {6 s" l4 G: y# [1 c) I
FPU只能加速float的基本运算,还有一些数学函数,不是光靠FPU就能加速的,例如sin、cos、等函数,ARM,ST,GD,APM等厂商提供了优化过的三角函数等,建议直接使用。
  B& m0 H) z' d4 Z1 ~/ S, d- o# z8 w( y8 I8 H- B$ r! M8 ~9 E3 j
素材来源:ST官方5 h* e0 _& v) t( W
==========
8 r( [! i0 T) z" T  _% ]1 Q往期回顾:【项目陪跑--无线CAN转发器】第一章 课程概述
% L0 q; @$ Z3 q" u: Y: g7 y【通知】上市公司嵌入式工程师带队授课,成品展示~~/ d- J2 \5 J8 n6 j; H3 d3 b/ z7 c
蓝桥杯物联网教程汇总_240529
4 }; O5 v. |; n0 w. V==========% N7 H9 f; c/ D7 I6 L

9 O. U! X  P5 I4 J9 p& U

wyqjgiy1ldn64023639627.png

wyqjgiy1ldn64023639627.png
1 W0 o  ?: e* w0 v7 H, F0 I
1 R& a. O* a9 Y5 }+ E

pci2gdb14ev64023639727.png

pci2gdb14ev64023639727.png

6 e- K3 d7 l" b' J# m) s( L& j  [; [# [. g& M

pbwc5hpa35u64023639828.png

pbwc5hpa35u64023639828.png
回复

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表