【经验分享】STM32开启浮点运算单元FPU与DSP运算库,附性能测试
【经验分享】STM32开启浮点运算单元FPU与DSP运算库,附性能测试
[复制链接]
STMCU小助手
发布时间:2021-12-30 13:29
文章
文章封面:
文章简介:
STM32F4xx属于Cortex M4F架构,自带FPU硬件,可以加速float类型数据的加减乘除运算。
STM32F4xx属于Cortex M4F架构,自带FPU硬件,可以加速float类型数据的加减乘除运算。
观察启动文件,发现,要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1) && (__FPU_USED == 1)
20201127100037275.png (20.51 KB, 下载次数: 43)
下载附件
保存到相册
2021-12-30 13:29 上传
20201127101348618.png (35.76 KB, 下载次数: 44)
下载附件
保存到相册
2021-12-30 13:29 上传
在keil的魔术棒中,如上图所示,直接选中单精度浮点运算器,keil就会自动把所需的宏给定义出来。如何验证是否开启成功?
验证方法1:
我们把F407主频设为168M,不选中/选中FPU,分别做10万次乘法:发现耗时分别为32153us、5954us,发现耗时缩短为1/6.性能提升显著,说明开启FPU成功了。
验证方法2:
进入debug模式,或者直接查看汇编文件,发现C语言乘法运算,被编译成了V打头的汇编乘法命令,说明开启成功。
20201127101652406.png (22.83 KB, 下载次数: 38)
下载附件
保存到相册
2021-12-30 13:29 上传
FPU只能加速float的基本运算,还有一些数学函数,不是光靠FPU就能加速的,例如sin、cos、等函数,ST和ARM提供了优化过的三角函数等,使用插值方法加速运算,要想使用这些优化过的函数
赞 0
收藏 0
评论0
分享
发布时间:2021-12-30 13:29
举报
请先登录后回复
0个回答