注册 登录
电子工程世界-论坛 首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

菲律宾申博广西快乐十分计划群大全: Linchpin的个人空间 http://www.ib939.com/space-uid-525682.html [收藏] [复制] [分享] [RSS]

菲律宾申博广西快乐十分计划群大全:日志

M4之浮点运算单元FPU个人总结!!!!!!!!!!!!!!!!!!!!!!!!

本文地址:http://www.ib939.com/my/space-uid-525682-blogid-242407.html
文章摘要:菲律宾申博广西快乐十分计划群大全,这黑熊大王是什么来头能耐这么大 ,寒星诀吧住处。

热度 1已有 6194 次阅读2014-11-29 11:25

最近一直在纠结M4的浮点运算单元该怎么开启,菲律宾申博广西快乐十分计划群大全:为何语句里配置了(FPUEnable();FPULazyStackingEnable();)跟没配置程序运行速度是一个样的,有幸得到坛友指点,才解决了这个问题。
下面说一下开启FPU的方法:
首先,需要在编译器上开启FPU功能。CCS:默认为开启状态。可以在propertise——bulid——arm compiler——processor options 里的specify floating point support里配置,默认为FPv4SPD16 ,即开启状态。
其次,需要在代码里加上这两句 FPUEnable();FPULazyStackingEnable();(最好加在main函数入口处,具体原因我也不清楚。)

那面下面来讨论下这几种情况:
1.编译器未开启FPU,代码里配置了FPU。程序还是会按照未使能FPU的代码进行处理。
2.编译器开启FPU,代码里未配置FPU。如果代码中带有单精度浮点(注意是单精度)运算的代码,编译器就会使用带V的FPU单元汇编指令,无论芯片是否开启了FPU单元功能。除非用户在代码中关闭FPU功能(FPUDiable语句),那么程序执行就会出现错误,进入FaultISR;

所以我们平时写的程序只要用到了浮点运算,即使没有在代码中配置FPU,就如上面情况2所说的,默认是使用FPU功能的。。所以根本就不需要我们刻意去开启了。
还有一点要注意的是浮点运算单元只适用于单精度浮点(Float型)的运算,而对于double型就不管用。要是你语句中有 a=a*1.2 这样的语句,这个1.2系统是默认定义为double型的,运算时按double型进行运算,再把结果转化成float,所以应写成 a=a*1.2f(将1.2定义为float型) 才行。


以上为本人个人愚见,如有错误,望各位大大指点!

永利游戏现金直营

关闭

站长推荐

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-1-27 10:25 , Processed in 0.037036 second(s), 11 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2020 永利游戏现金直营

返回顶部
澳门可以刷银联卡吗 博彩广告投放网上娱乐场 欧洲娱乐AB棋牌 湖北澳门小姐登入 永利游戏现金直营
银泰VR快艇开奖结果 巴黎人幸运农场助赢软件 澳门赌场VR赛车彩票 海立方OG东方馆官方网 www.188.cc
金山彩票9188彩票网 皇家皇家彩票网址 yg机器人世界 千亿皇家彩票时时彩平台怎么样 澳洲国际福彩3D官网
新葡京娱乐导航登入 申博太阳城北京PK10开奖 澳门永利网上娱乐直营网登入 维多利亚福彩3D时时彩平台网址 天天皇家六合彩开奖结果