OpenEdv-开源电子网

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

如何确定自己开启了FPU

[复制链接]

28

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2015-3-23
在线时间
54 小时
发表于 2017-3-28 14:06:14 | 显示全部楼层 |阅读模式
10金钱
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#楼]

查看生成的汇编文件,有没有使用浮点指令和浮点寄存器!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-3-28 14:06:15 | 显示全部楼层
查看生成的汇编文件,有没有使用浮点指令和浮点寄存器!
回复

使用道具 举报

28

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2015-3-23
在线时间
54 小时
 楼主| 发表于 2017-3-28 21:21:00 | 显示全部楼层
1.查找FPU汇编指令: http://infocenter.arm.com/help/i ... r1359124232426.html
2.如果使用的是软浮点运算,则应该是调用库__aeabi_

FPU instruction set table.pdf

124.21 KB, 下载次数: 169

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 17:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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