现在的位置: 首页 > 综合 > 正文

关于wince6中加入FPCTR出错的原因

2013年08月12日 ⁄ 综合 ⁄ 共 858字 ⁄ 字号 评论关闭

当加入OEM Floating Point CRT (ARM only)组件的时候编译会提示FRCRT未定义,查MSDN都说wince6支持这个功能,百思不得其解,最后终于在网上查到了原因:

http://www.eggheadcafe.com/conversation.aspx?messageid=34789848&threadid=34572975

 

原文如下: 

The VS2005 compiler used by PB for CE6.0 emits no VFP instructions and unless you implement FPCRT.DLL for an ARM

 

then all CE implementations are integer (default MS implementation of FPCRT uses software emulation), even if you

 

have a hardware VFP in your core (e.g. ARM11 or Cortex-A8). To actually use the VFP you must do the following:

 

1. Use SYSGEN_OEM_FPCRT - catalog item "OEM Floating Point CRT (ARM only)

2. Download the VFPv2 library support from the ARM website and incorporate it into your build:
www.arm.com/products/os/windowsce_vfp_dl.html

Instructions are included with the download from ARM.

 

My tests show a 4x increase in performance on floating point operations on a release build on an ARM1136JF-S core.

 

我的理解:FPCTR组件只是加入了对相关函数的引用定义,具体实现还需要OEM来实现。如果CPU不支持硬浮点是不需要加入这个组件的。

抱歉!评论已关闭.