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

本文详细介绍了在Windows CE 6.0中如何通过加入OEMFloatingPointCRT(ARMonly)组件并结合ARM VFPv2库支持来启用硬件浮点运算,以显著提高基于ARM11或Cortex-A8等支持硬件浮点运算的CPU的性能。

当加入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不支持硬浮点是不需要加入这个组件的。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值