OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3190|回复: 2

关于F767的FPU测试

[复制链接]

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
发表于 2018-5-31 18:17:34 | 显示全部楼层 |阅读模式
5金钱
今天做了关于F767的FPU测试,发现是有效果,但是效果好些没有宣传的那么好。主要测试代码如下:
[mw_shl_code=c,true]
volatile u32 count=0;
int main(void)
{
        double a=1.1;
        u32 b=0,c,d;
    Cache_Enable();                 //打开L1-Cache
    HAL_Init();                                        //初始化HAL库
    Stm32_Clock_Init(432,25,2,9);   //设置时钟,216Mhz
    delay_init(216);                //延时初始化
        uart_init(115200);                        //串口初始化
    LED_Init();                     //初始化LED
    TIM3_Init(10-1,10800-1);      //定时器3初始化,定时器时钟为108M,分频系数为10800-1,
                                    //所以定时器3的频率为108M/10800=10K,自动重装载为10-1,那么定时器周期就是1ms
    while(1)
    {
                        c=count;
                        a=1.1;
                        for(b=0;b<9999999;b++)
                        {
                                a=a+1.1-0.234*a;
                        }
                        d=count;
                        LED0_Toggle;
                        printf("计算前:%d 计算后:%d  时差:%d   =%lf\r\n",c,d,(u32)(d-c),a);
        }  
}

//定时器3中断服务函数调用
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim==(&TIM3_Handler))  //1ms
    {
                        count++;
                        if(count%1000==0)
      LED1_Toggle;        //LED0反转
                       
    }
}[/mw_shl_code]

测试发现,在未选择FPU和选择FPU(Use Double Precision)情况下,结果分别为:
分别耗时4961ms和834ms,约6倍。这个属于正常吗,好像没有10倍多。

无FPU

无FPU

有FPU

有FPU

最佳答案

查看完整内容[请看2#楼]

你这个,大部分时间去做循环去了,用于浮点计算的时间很短。而做循环的效率,开FPU和不开FPU是一样的。 所以理论值,是指你全部用浮点运算的条件下。尽量少做其他操作。的出来的结果。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-5-31 18:17:35 | 显示全部楼层
你这个,大部分时间去做循环去了,用于浮点计算的时间很短。而做循环的效率,开FPU和不开FPU是一样的。  所以理论值,是指你全部用浮点运算的条件下。尽量少做其他操作。的出来的结果。
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2018-6-1 11:02:11 | 显示全部楼层
正点原子 发表于 2018-5-31 18:17
你这个,大部分时间去做循环去了,用于浮点计算的时间很短。而做循环的效率,开FPU和不开FPU是一样的。  所 ...

谢谢原子哥解答!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-2 20:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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