硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1215|回复: 1
收起左侧

[客户分享] STM32F407ZGT6的FPU计算能力,结果可能需要进一步验证

[复制链接]

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-11-10 05:55:59 | 显示全部楼层 |阅读模式
本帖最后由 Watercub3 于 2021-11-10 09:53 编辑

为了测试STM32F4的FPU浮点运算能力,做了一个简单的测试,分享给大家。
基本思路:计算三维空间中一点到多个点的直线距离,分别测试50个点、100、150……直到500个点。
程序设计:定时器用TIM2,计时周期84MHz,arr取0xFFFFFFFF, psc取0,这样可以定时五十多秒,可确保不溢出。
三维点坐标通过STM32F4的随机数发生器生成。
注意确定中间结果不被Keil编译器优化掉。
计算涉及到了浮点数乘法和开平方。FPU开平方用__sqrtf(),不带FPU时,开平方用sqrt().
  1. <blockquote>#include "stm32f4xx.h"
复制代码
结果如下:
运算次数 不带FPU定时器值不带FPU消耗时间 (微秒)带FPU定时器值 带FPU消耗时间 (微秒)
50  0x4499  209.1 0x5A317.1786
100 0x88E3  417.20xB2F34.0833
150 0xCD53  625.80x10C551.1071
200 0x111C1  834.30x165B68.1310
250 0x15631 1042.90x1BF185.1548
300 0x19A9F   1251.40x2187102.1786
350 0x1DF0F1460.00x271D119.2024
400 0x2237D1668.50x2CB3136.2262
450 0x267ED1877.10x3249153.2500
500 0x2AC5B2085.70x37DF170.2738
耗时对比:

官方手册AN4044中,用FPU跑Julia集,效率可提高12倍,在本例中,差不多也是这个比例,下图是耗时比(不带FPU耗时/带FPU耗时):

完成,当做抛转引玉。



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107112
QQ
发表于 2021-11-10 09:08:54 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 13:15 , Processed in 0.172573 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表