Hi,
Could you tell me whether there is a WinCE 6.0 library to use NEON on OMAP3530 ? Indeed, we would like to use it in order to perform vector/matrix floating point operations in few cycle.
Thanks for your help.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
Could you tell me whether there is a WinCE 6.0 library to use NEON on OMAP3530 ? Indeed, we would like to use it in order to perform vector/matrix floating point operations in few cycle.
Thanks for your help.
WinCE6.0 has no "native" support for NEON. When multiple threads use either NEON or VFP, the registers have to be saved and restored by the kernel during context switches when a VFP/NEON exception is raised. The OMAP3 uses VFPv3 and as a consequence shares the same set of registers as NEON. Visit ARM website here for details: http://infocenter.arm.com/help/topic/com.arm.doc.dht0002a/DHT0002A_introducing_neon.pdf
This means the current WinCE6.0 toolchain has no support for NEON and there is no emulated library like the VFPv2 one from ARM. Your only chance is to get access to WinCE7.0 if you have a special agreement with Microsoft like ADP program or wait for WinCE7.0 RTM.
Regards, David.
Hi David,
Thanks for your detailed answer. I have other questions :
Thanks.
Best Regards.
Bertrand.
Bertrand,
Best regards
David.
Hi all,
I am using VFPv2. TI's/BSquare documentation mentions "If you use the ARM supplied VFPv2 library then you must disable the co-proc kernel callback
and allow the Microsoft kernel to save/restore the VFP context." How can co-proc kernel callback be disabled?
Thanks,
Eugen
I may be wrong but I thought there was another issue with the VFPv2 under CE 6? I'll have to dig around maybe it was the NEON interaction. I do remember having it working in an earlier dorp of the BSP.
In vfphandler.c, in OALVFPInitialize(), change these lines as follows:
pOemGlobal->pfnInitCoProcRegs = NULL;
pOemGlobal->pfnSaveCoProcRegs = NULL;
pOemGlobal->pfnRestoreCoProcRegs = NULL;
pOemGlobal->cbCoProcRegSize = 0;
pOemGlobal->fSaveCoProcReg = FALSE;