Sign in Join
Wiki copytemporary

WinCE port/ru

English · Italiano · Português · Русский · 中文(台灣)

Портирование на WinCE вполне выполнимо. Начат и закреплён сей процесс был Юрием Сидоровым. Oliver (Oro06) портировал заголовочные файлы WinCE API.

Статус

Скачать кроссплатформенный компилятор

Наиболее лёгкий способ начать разрабатывать для WinCE - загрузить свежую версию FPC под Win32 и arm-wince cross compiler for Win32.

Скачать можно тут: http://www.freepascal.org/download.var

Сначала установите FPC for Win32, затем установите arm-wince cross compiler как add-on пакет.

Если же нужен ещё и лазарус, то качайте вот отсюда оба: http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/Lazarus%200.9.28.2/

Установите оба в одну папку, сначала win32 потом cross-compiler.

Сборка WinCE cross compiler из исходников

During the tutorial some paths will be suposed to demonstrate the build process. Just substitute those paths with the ones on your system.

This tutorial demonstrates how to build arm-wince crosscompiler. i386-wince crosscompiler can be build similar way. Just substitute arm to i386. Also binutils are not needed for i386-wince target.

Step 1 - Cross binutils

These are the basic tools necessary to create executables, such as: Linker (ld), Assembler (as), Archiver (ar) (Creates smartlinking .a files), strip and some others.

You need cross binutils for arm-wince, get them from ftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip for Win32.

Extract them to some dir in the path on your machine. We will supose that you extracted the cross binutils to: C:\Programas\arm

Step 2 - Cross compiler

Now you need to build fpc cross compiler for ARM processor. To do that you need fpc 2.2.0 or later sources and working installation of fpc 2.2.0 for Win32.

You can get the latest fpc source repository from Subversion: http://www.freepascal.org/develop.html#svn

We will supose that your Win32 fpc compiler is located here: C:\Programas\fpc\bin\i386-win32

And your Free Pascal source code is located here: C:\Programas\fpc

Step 3 - The Build process

In order to build the cross compiler it is necessary to have a correct PATH environment variable. On Windows it is very easy to get a PATH crowded with information put by installers. To ensure that your path is correct, create a batch file with the following code:

pascal
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm
make cycle CPU_TARGET=arm OS_TARGET=wince

Put this file on C:\Programas\fpc\compiler, open the Windows command line, go to this folder and execute the batch file.

On the end of the compile you should not see any errors.

You should have a ppccrossarm.exe in C:\Programas\fpc\compiler and some .o and .ppu files in C:\Programas\fpc\rtl\units\arm-wince

Now copy those files to your Free Pascal installation. The cross compiler ppccrossarm.exe should go to C:\Programas\fpc\bin\arm-wince and the units to C:\Programas\fpc\units\arm-wince

Step 4 - Configuration file

Now you need to create fpc.cfg configuration file in C:\Programas\fpc\bin\arm-wince folder in order to use ppccrossarm.exe easy.

Create empty fpc.cfg file in C:\Programas\fpc\bin\arm-wince folder and add the following lines to it:

pascal
-Twince
-FuC:\Programas\fpc\units\arm-wince
-XParm-wince-
-FDC:\Programas\arm

Finally add C:\Programas\fpc\bin\arm-wince and C:\Programas\fpc\bin\i386-win32 to your PATH environment variable.

Remember to substitute the paths with the ones on your system.

Alternative Step 4 - Configuration file for hybrid compilation

If you want to compile your projects with the same "fpc" for both win32 and winCE platforms, you can do the following:

Remember to substitute the paths with the ones on your system.

Now when you want to compile for WinCE you just have to specify the OS and Arch targets to fpc.

NOTE: if you use Lazarus this will work flawlessly, but make sure to point lazarus to "fpc.exe" not "ppc386.exe".

Компиляция тестового проекта

У меня есть компилятор! Что я могу делать теперь? Дальше следует инструкция по созданию программы hello world.

Шаг 1 - Установкаи настройка эмулятора

Вам понадобится Windows CE Emulator сконфигурированный с ActiveSync. The ActiveSync is necessary to install PocketCMD, a command line tool to run our hello world software.

Download the free Pocket PC device emulator from Microsoft. It emulates ARM CPU. http://msdn.microsoft.com/mobility/downloads/Emulator/default.aspx

There is a tutorial on how to set up the Emulator for ActiveSync here.

Step 2 - Installing the command line

Download and install PocketCMD by SymbolicTools. Get it here (this site seems to be gone) but try here 1

To enable the console on newer devices (I needed it in my 6.1CE pro), you may to set the following registry value link

HKEY_LOCAL_MACHINE\Drivers\Console\OutputTo -> 0

Check the WinCE port notes section bellow for more details on command lines on Pocket PC.

Step 3 - Compiling

A example file to compile:

pascal
program test;
pascal
{$apptype console}
pascal
var
  Str: string;
begin
  WriteLn('Software Developed with:');
  WriteLn('The Free Pascal Compiler');
  WriteLn('');
  WriteLn('Please, enter your name:');
  ReadLn(Str);
  WriteLn('Your name is: ' + Str);
end.

Sample command line to compile test.pas:

ppcrossarm test.pas

You will get test.exe executable file. Copy it to your Windows CE device and run.

Here is a screenshot of a software created this way.

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:

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:

To learn more how to use GDB read its documentation here: http://www.gnu.org/software/gdb/documentation

Building FPC libraries

If you want to build libraries available with FPC just go to library folder and execute:

pascal
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\fpc\compiler;C:\Programas\arm
make OS_TARGET=wince CPU_TARGET=arm PP=ppcrossarm.exe

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.

Documentation

some WinCE notes

WinCE port notes

See Also

Links

Here are some links related to ARM CPU Architecture

Contacts

Write any questions regarding WinCE port to Yury Sidorov


From the Free Pascal wiki, page "WinCE port/ru", as it stood on 2015-05-14 after a change by FTurtle, 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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.