Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

How to use IPP in winCE Application?

jiing
Beginner
538 Views
Now we want to integrated IPP to winCE development.
Our development tool is Visual Studio .Net 2003.
I found we seems need to use Unmanged Code DLL to use IPP.

Is there any related documentation for this development process.

Thanks.
0 Kudos
8 Replies
Vladimir_Dudnik
Employee
538 Views
Hi,
Actually we deliver our IPP samples with Makefiles to build them. We do not use .NET studio, so we do not have in IPP documentation how to use libraries in this environment. Please submit your request to Intel Premier Support to get assistance with this.
Regards,
Vladimir
0 Kudos
jiing
Beginner
538 Views
Hi,

Thank you for your response.

I found the book "Programming with Intel Wireless MMX Technology" P126 Section "Where Does Intel IPP Fit with the OS" writes

The currently supported operating systems and tool chains are:

Windows CE -- Pocket PC and Smartphone
-- Microsoft eMbedded Visual C++ 4.0
-- Microsoft Windows CE Platform Builder

There is no document about VS .net, is there documentation about EMbedded Visual C++?

Thanks in advance.

-jiing-
0 Kudos
Vladimir_Dudnik
Employee
538 Views
Hi
what kind of documentaton for eVC you are looking for? Usually, it is quite easy to use IPP in eVC environment: you just create project, add source files, do some tuning by specifying path to include files, path to the library files, by specifying libraries to link with. And that's all.
Regards,
Vladimir

Message Edited by vdudnik on 09-14-2005 01:54 AM

0 Kudos
jiing
Beginner
538 Views
Hi

Thanks for your response.

Let me explain what I have done:
I am working on windows XP profession, eVC 4.0 + IPP 4.1
Now I want to test if the IPP could be used in WinCE platform with hardware :PXA270, wince test board (called sandgate)

I follow the documentation at http://support.intel.com/support/performancetools/libraries/ipp/win/ia/sb/cs-014993.htm
But find some difference between the document and my environment.(I know it may owing to some version difference)

My IPP version is 4.1.

Let me explain the difference:

the documentation says at 7. you would add C:Program FilesIntelIPPSCxxlib
and 8. e.g. default: C:Program FilesIntelIPPSCxxinclude

I know that default setting, and mine is
C:Program FilesIntelIPP41pca_xsclib
C:Program FilesIntelIPP41pca_xscinclude
respectively.

I see the documentation (http://support.intel.com/support/performancetools/libraries/ipp/win/ia/sb/cs-014993.htm)
add ippIP_XSCxxPPC_d.lib at 6.
I checked the documentation (ippman_pca.zip) in the installed directory (C:Program FilesIntelIPP41pca_xsc)
And find it's a function about Image Processing in debug mode.

In eVC, I choose WCE Application, CPU choose Win32[WCE emulator], Win32[WCE_x86], and Win32[WCE ARMV4I]
And choose A empty project. Then I add all the lib
(ippAC_XSC41PPC_d.lib
ippIP_XSC41PPC_d.lib
ippJP_XSC41PPC_d.lib
ippSC_XSC41PPC_d.lib
ippSP_XSC41PPC_d.lib
ippSR_XSC41PPC_d.lib
ippVC_XSC41PPC_d.lib)

to Project->Setting->Link->Input->Object/Library.

After several failure.
I try to write thea easiest example for this.

#include "ipp.h"
int main(int argc, char* argv[])
{

return 0;
}

after compiling it and it gets:
--------------------Configuration: test - Win32 (WCE emulator) Debug--------------------
Compiling...
main.cpp
Linking...
corelibc.lib(pegwmain.obj) : error LNK2019: unresolved external symbol _WinMain referenced in function _WinMainCRTStartup
emulatorDbg/test.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
C:Program FilesIntelIPP41pca_xscincludeippIP.h(1645): Could not find the file ippi_plus.h.

test.exe - 2 error(s), 0 warning(s)

What's wrong in my steps?
Could anyone teach me? thanks in advance.

-jiing-
0 Kudos
jiing
Beginner
538 Views
Hi



I have a little progress.

When I new "A Simple Windows CE Application". It pass the compiling process.

But Still failed in linking.



If I comment the line of "ippsCopy_16s(pSrc, pDst, SIZE); " as follows, it passed.

but we I un-comment the lint, it failed in linking.

And shows :



--------------------Configuration: test8 - Win32 (WCE emulator) Debug--------------------

Compiling...

test8.cpp

Linking...

test8.obj : error LNK2019: unresolved external symbol _ippsCopy_16s referenced in function _WinMain

emulatorDbg/test8.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.

D:WinCE_jiing est8ippIP.h(1645): Could not find the file ippi_plus.h.



test8.exe - 2 error(s), 0 warning(s)



My setting is as the above case.

My program is as following:============================





#include "stdafx.h"

#include "ippSP.h" //ippsCopy_16s declaration in here

#include "ipp.h"



int WINAPI WinMain( HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPTSTR lpCmdLine,

int nCmdShow)

{

// TODO: Place code here.

const int SIZE = 256;

Ipp16s pSrc[SIZE], pDst[SIZE];



int i;

for (i =0; i

pSrc = (Ipp16s)i;



// ippsCopy_16s(pSrc, pDst, SIZE); //this line has big problem



return 0;

}
0 Kudos
Vladimir_Dudnik
Employee
538 Views

Did you specified path to the IPP libraries and names of particular IPP libraries to link with?

Vladimir
0 Kudos
jiing
Beginner
538 Views
Thanks a lot.

I found where I was wrong, I do not install the pocket pc sdk.
But now I have other problems.

My IPP version is 4.1, eVC 4.0 SP4. Now I can successfully compiling and linking. But can not be executed on wince test board. (I have seen that can not execute on emulator at point 9)

1. Install Intel PCA processor equipment-related SDK, for example Microsoft* PocketPC* 2003 SDK.
jiing: Originally, I think I do not do this in my PC1, since I already have installed VS .net 2003. But finally I found I may wrong and decided to follow all the steps so I installed it, and seleted a project of pocket pc 2003, and it iscompiled and linked successfully. But now I have other questions in point 9. Following are the steps I have done.

2. Use the wizard to build a project and call Intel IPP functions in the program.
3. Select Project >> Settings.
4. Select the Link tab.
5. In the Category drop-down menu, select Input.
6. In the Object/library modules section add related library, like ippIP_XSCxxPPC_d.lib.
jiing: I added all the library (ippAC_WMMX41PPC_d.lib ippIP_WMMX41PPC_d.lib IppJP_WMMX41PPC_d.lib ippSC_WMMX41PPC_d.lib ippSP_WMMX41PPC_d.lib ippSR_WMMX41PPC_d.lib ippVC_WMMX41PPC_d.lib)

7. You must add the library path to the location of these libraries. In the Tools >> Options >> Directories, select Library files, add the location of the Intel IPP libraries.
For example, on the host system, you would add C:Program FilesIntelIPPXSCxxlib (for the default install location).
jiing: I added C:PROGRAM FILESINTELIPP41PCA_WMMXINCLUDE for all my cpu type

8. You may also add the include path. In the Tools >> Options >> Directories, select Include Files, and then type in the directory for the Intel IPP include files (e.g. default: C:Program FilesIntelIPPXSCxxinclude).

**9. If you want run the program, please make sure to run it on an Intel PCA processor-based system. Intel IPP programs cannot be run in an emulation environment.

jiing: I used 2 cases to test.

Our hardware test board is sandgate (PXA270) .

1. First is when we select ARMV4 to compiled and Pocket PC 2003 device to execute. It says
CPU Mismatch Warning
The ARMV4I CPU does not support configuration ARMV4!
Executable will not run on device.

And

OS Mismatch Warning
CE Platform POCKET PC 2003 does not match remote OS version 500.

and

Fail downloading.

2. My colleague used the platform builder to build a SDK suitable for the sandgate test board (PXA270), He saids that after installing the SDK, when compiling, eVC should be automatically linked to the test board and the program should could be executed. We choose the project type of Simple WinCE applicaion.

I try to follow the step 7 and 8 in the link you provided. but it can not been added.
It shows a message dialog, it says:
"Change to the universal platform wil not be saved!!"

So I copy all the *.ipp lib and *.h the the folder that the project has included.

But when we choose the project type of Simple WinCE applicaion. It occurs the problem as before, a linking error.

===================
--------------------Configuration: test09161600 - Win32 (WCE ARMV4I) Debug--------------------
Linking...
test09161600.obj : error LNK2019: unresolved external symbol ippsCopy_16s referenced in function WinMain
ARMV4IDbg/test09161600.exe : fatal error LNK 1120: 1 unresolved externals
Error executing link.exe.

test09161600.exe - 2 error(s), 0 warning(s)
===================


Could I ask you how to let our program with IPP to run on winCE 500 (not only pocket pc 2003).

Thank you very much .

-jiing-
0 Kudos
Vladimir_Dudnik
Employee
538 Views

Hi,

please submit your issue to Intel Technical Support channel. Actually, at the time of IPP v4.1 development Windows CE v5.0 was not available, so probably you need to take a look on IPP v5.0 beta (or final release, which is coming soon).

Regards,
Vladimir
0 Kudos
Reply