STM32F103与407,乘法、浮点乘法、带与不带FPU浮点乘法速度对比

主旨:测试在各种情况下CPU执行10万次乘法耗时

主测试函数:

void mutil_10w(void)
{
	u32 mul=0;
	u16 a=112,b=62;
	u32 ka=0;
	
	for(ka=0;ka<100000;ka++)
	{
		mul=a*b;
	}
}

实验1:F103

耗时:22.55ms

 

实验2:F103,把b改成大于0xff的数字

耗时:22.22ms,时间还更短了,这点不知道为什么

 

实验3:F407,不带FPU

耗时:5.06ms

 

实验4:F407,带FPU

耗时:5.06ms,非浮点乘法时,带与不带FPU都一样的,这个好理解

 

实验5:F407,不带FPU,把b改成大于0xff的数

耗时:4.42ms,跟F103一样,时间更短了

 

实验6:F407,不带FPU,浮点乘法

实验函数:

void mutil_10w(void)
{
	float mul=0.0;
	float a=112.2,b=62.6;
	u32 ka=0;
	
	for(ka=0;ka<100000;ka++)
	{
		mul=a*b;
	}
}

耗时:34.1ms

 

实验7:F407,带FPU,浮点乘法

耗时:6.31ms,带FPU后10万次浮点乘法快了将近6倍,不过还是比非浮点乘法稍微耗时一点,毕竟是浮点运算嘛

 

 

 

你可能感兴趣的:(STM32,单片机,FPU,运算速度)