7262|9

164

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请问M4的FPU浮点运算单元需要在CCS中设置吗,为什么软件开启FPU没用 [复制链接]

执行一个非常复杂的浮点运算,时间是8.5秒
运算程序如下,随便写的。
for(i=0;i<100000;i++)
{
a=a+1234.56789;
b=a*9876.54321/1234.56789;
c=b/a*sin(3.14);
}

在程序中加了这两句
FPUEnable();
FPULazyStackingEnable();
之后运行时间还是8.5秒没变。

我想是不是FPU没有打开,是不是FPU需要在CCS里设置打开才行呢??求大神解答。。先谢过了

最新回复

你看下这个 http://www.deyisupport.com/quest ... x/f/96/t/29461.aspx  详情 回复 发表于 2014-11-28 20:09
 
点赞 关注

回复
举报

21

帖子

0

TA的资源

一粒金砂(中级)

推荐
 
你看下这个
http://www.deyisupport.com/quest ... x/f/96/t/29461.aspx

点评

非常感谢,我的问题解决了。。CCS编译器是默认开启了FPU功能,在propertise——bulid——arm compiler——processor options 里的specify floating point support里配置,默认为FPv4SPD16 。如果编译器使能了FPU功能  详情 回复 发表于 2014-11-29 11:02

赞赏

1

查看全部赞赏

 
 

回复

503

帖子

1

TA的资源

纯净的硅(初级)

沙发
 
用ROM_FPUEnable();
ROM_FPULazyStackingEnable();试试

点评

刚试了,,也不行。。请问你有用过FPU吗,有没有成功过?  详情 回复 发表于 2014-11-28 16:07
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 
是不是加的位置不对,放在 main() 入口,SysCtlClockSet()  之前 试一下

点评

就是加在这个位置没错  详情 回复 发表于 2014-11-28 15:48
 
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

4
 
就是加在这个位置没错
Study_Stellaris 发表于 2014-11-28 09:16
是不是加的位置不对,放在 main() 入口,SysCtlClockSet()  之前 试一下

点评

那就只能试试 2 楼说的方法,不过我觉得应该不是这个的问题。 你可以参考一下 TivaWare 中的那个产生 Sin 曲线的例程,这里边应该用到了 FPU 。不过是基于 MDK 的。  详情 回复 发表于 2014-11-28 15:55
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

5
 
Linchpin 发表于 2014-11-28 15:48
就是加在这个位置没错

那就只能试试 2 楼说的方法,不过我觉得应该不是这个的问题。
你可以参考一下 TivaWare 中的那个产生 Sin 曲线的例程,这里边应该用到了 FPU 。不过是基于 MDK 的。

点评

刚试了2楼的方法也不行。。你说的那个sin函数官方程序在哪呢,我咋在TIVAWARE里找不到  详情 回复 发表于 2014-11-28 16:09
 
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

6
 
ddlxiaoxu 发表于 2014-11-28 07:59
用ROM_FPUEnable();
ROM_FPULazyStackingEnable();试试
刚试了,,也不行。。请问你有用过FPU吗,有没有成功过?
 
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

7
 
Study_Stellaris 发表于 2014-11-28 15:55
那就只能试试 2 楼说的方法,不过我觉得应该不是这个的问题。
你可以参考一下 TivaWare 中的那个产生 Si ...
刚试了2楼的方法也不行。。你说的那个sin函数官方程序在哪呢,我咋在TIVAWARE里找不到

点评

E:\Program files\TI\TivaWare_C_Series-1.1\examples\boards\dk-tm4c123g我的在这个文件夹里面,,,  详情 回复 发表于 2014-11-28 16:37
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

8
 
Linchpin 发表于 2014-11-28 16:09
刚试了2楼的方法也不行。。你说的那个sin函数官方程序在哪呢,我咋在TIVAWARE里找不到
E:\Program files\TI\TivaWare_C_Series-1.1\examples\boards\dk-tm4c123g我的在这个文件夹里面,,,
 
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

10
 
基辅之门 发表于 2014-11-28 20:09
你看下这个
http://www.deyisupport.com/question_answer/microcontrollers/tiva_arm_cortex/f/96/t/29461 ...
非常感谢,我的问题解决了。。CCS编译器是默认开启了FPU功能,在propertise——bulid——arm compiler——processor options 里的specify floating point support里配置,默认为FPv4SPD16 。如果编译器使能了FPU功能,而芯片未开启FPU单元,程序运行到浮点语句时就会出现异常。相反,如果编译器未使能FPU功能,芯片即使开启了FPU单元,程序还是会按照未使能FPU的代码进行处理。

一旦选择“use FPU”功能,如果代码中带有单精度浮点运算的代码,编译器就会使用带V的FPU单元汇编指令,无论芯片是否开启了FPU单元功能。如果选择不使用FPU功能,即使芯片开启了FPU单元,编译器一样不会采用带V的汇编指令。


这两句话非常好呀。因为编译器开启了FPU功能,只要代码里用到了float运算,无论代码里是否开启FPU单元,编译器都使用FPU单元的汇编指令。除非用FPUDiable语句把它关了,那样程序执行就会出现错误。


 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表