WinCE port
English · Italiano · Português · Русский · 中文(台灣)
WinCE port is quite complete and usable. The port was started and maintained by Yury Sidorov. Oliver (Oro06) ported WinCE API headers.
Status
- FPC 2.2.0 or later supports WinCE target.
- CPU support for WinCE target:
- ARM CPU is fully supported. See arm-wince how to setup a crosscompiling enviroment.
There are readymade crosscompiler package available(See Lazarus download sources) - i386 CPU support was not tested too much and may contain bugs. Patches are welcome.
Normally there is no readymade crosscompiler package for this CPU. See i386-wince howto setup a cross compile enviroment(Win32 Host)
- ARM CPU is fully supported. See arm-wince how to setup a crosscompiling enviroment.
- The following platforms are supported:
- Devices based on WinCE 3.0 or later
- Pocket PC 2002 – WinCE version: 3.0
- Pocket PC 2003 – WinCE version: 4.20
- Pocket PC 2003 Second Edition – WinCE version: 4.21
- Windows Mobile 5 – WinCE version: 5.0
- Windows Mobile 6 – WinCE version: 5.2
- Windows Mobile 6.5 - WinCE version: 5.2.1
- RTL and FCL units are working.
Debugging WinCE applications
GDB can be used to debug your WinCE applications remotely via ActiveSync. Download GDB 6.4 for Win32 host and arm-wince target here: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip
Some hints:
- Pass
--tuiparameter to GDB to enable TUI interface which makes debugging more comfortable. - Use unix line endings (LF only) in your pascal source files. Otherwise GDB will show sources incorrctly.
How to use:
First, make ActiveSync connection to your Pocket PC device.
Then launch gdb:
gdb --tui <your_executable_at_local_pc>
On gdb prompt type:
run or just r
GDB will copy your executable to the device in \gdb folder and run it.
Here is a short list of most needed GDB commands:
r args- run program with args arguments.s- step into.n- step over.ni- step over instrument.step over assembly instruction.c- continue execution.br <function_name>- set a breakpoint atfunction_name. UsePASCALMAINto set a breakpoint at program start.br <source_file>:<line_number>- set a breakpoint at specified source line.disas- show disassembly of current location.x/fmt address- dump memory at address with special format.use "help x" for more informations.bt- back trace.print back trace of the call stack.where- Display the current line and function and the stack of calls that got you there.q- Quit gdb.
To learn more how to use GDB read its documentation here: http://www.gnu.org/software/gdb/documentation
For example you want to build FCL. Go to fpc\fcl folder and execute the command above. You will get FCL compiled units in fpc\fcl\units\arm-wince.
See Also
- WinCE port hints
- Windows CE interface for Lazarus
- Windows CE Development Notes
- WinCE port of KOL GUI library
Links
- Useful WinCE info http://www.rainer-keuchel.de/documents.html
- Standalone Pocket PC device emulator from Microsoft. It emulates ARM CPU. Get it here
- Mamaich Pocket PC port of GCC http://mamaich.uni.cc
- Buildfaq is a general FAQ about how to build and configure FPC.
Here are some links related to ARM CPU Architecture
- ARM Core Developers Forum Not that much active though.
- GCC ARM Improvement Project
- ARM ASSEMBLER Good information and codes related to arm assembly language.
- GNU ARM toolchain for Cygwin, Linux and MacOS
- Microsoft Windows CE .NET 4.2 ARM Guide
- ARM Instruction Sets & Programs Very good and consice information about arm architecture
- The ARM Instruction Set Another fine power point file about arm
Contacts
Write any questions regarding WinCE port to Yury Sidorov
From the Free Pascal wiki, page "WinCE port", as it stood on 2020-08-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
