STM32F4的浮点型运算:只支持单精度的加减乘除,和平方根。在通过配置开启FPU后,验证1s的时间,开启FPU或不开启FPU sumCnt 的计数值分别是:0x2c0f2c , 0x6c74
double sum = 0;
unsigned int sumCnt = 0;
main()
{ while(1)
{
double i = 0.12345;
double j = 0.123456;
sum = (i*4096+j*3840)/10.0;
sumCnt++;
}
}
开启FPU的配置方法:
http://blog.sina.com.cn/s/blog_4ed9fbab0101jnc1.html
但自己验证的时候发现只要在option for target ..->target ->floating point hardware选择 use single precision跟上面的配置达到一样的效果。
通过查看汇编发现有用到vmov.f32的,这是用到了FPU的意思吗?
我想问怎么样确定自己是否开启了FPU呢?
2.如果使用的是软浮点运算,则应该是调用库__aeabi_
一周热门 更多>