F407的FPU运算精度

2019-07-21 03:52发布

我今天看原子哥的UCOS开发手册说
  如果使能了 FPU 单元的话就可以使用它来对单精度浮点数进行计算,双精度浮
点数的计算仍然要使用到C 运行库。
那也就是FPU只能运算float类型

后边又说浮点寄存器可以两个32位组成一个双精度的寄存器

然后我今天看了一下我的代码 double类型还是用了V指令
确实是调用了C库里的函数 比如__aeabi_dmul, __aeabi_ddiv, __aeabi_dadd

然后就明白了

FPU确实只能计算单精度浮点数!
曾经天真的以为双精度也可以

刚改了改代码!
如果计算float*3.0
一定要写成float*3.0f
要不然还是会调用库函数





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-22 00:00
谢谢分享....
Theone
2楼-- · 2019-07-22 03:51
回复【8楼】正点原子:
---------------------------------
哥 如果懂汇编 看看我另一个帖子吧 
http://www.openedv.com/posts/list/46698.htm
kiti1013
3楼-- · 2019-07-22 09:07
 精彩回答 2  元偷偷看……

一周热门 更多>