維基副本鏡像站

這是 pascal.chat 維基的鏡像站。編輯、歷史紀錄與登入請到該處。

WinCE port/zh TW

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

為WinCE進行的Free Pascal移植已經相當完整了,這個移植工作是由Yury Sidorov所進行的,而WinCE API的標頭檔則是由Oliver (Oro06)移植的。

狀態

下載交叉編譯器

要開始開發WinCE應用程式最簡單的方法,就是下載最新版的Win32平台的FPC跟Win32平台版本的arm-wince交叉編譯器。

您可以從這裡下載: http://www.freepascal.org/download.var

首先請安裝Win32平台的FPC,然後安裝arm-wince的交叉編譯器安裝程式。

從原始碼建置WinCE交叉編譯器 (直接下載預先編譯好的交叉編譯程式比較快,就可以跳過這四個步驟直接開始寫程式了)

在教學手冊裡面有部分路徑只是用來展示教學如何建置編譯器用的,請將那些路徑從您的IDE系統中移除。

步驟一 – 交叉編譯工具程式

這些工具程式是建置執行檔時需要的基礎,例如連結程式、編譯器、建立函式庫的程式等等。

您需要為arm-wince建置交叉編譯工具程式,或者您也可以從這裡取得適用Win32平台的預先編譯好的工具程式: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip

將這個zip檔解壓到您機器上的目錄上,例如: C:\Programas\arm

步驟二 – 交叉編譯器

現在您已經可以使用FPC交叉編譯器(為ARM處理器建置的版本)來建置應用程式了。請先準備FPC 2.1.x版本的原始碼,以及FPC 2.0.4版以後的Win32平台FPC程式。

您可以從SVN取得最新版的FPC原始碼: http://www.freepascal.org/develop.html#svn

以下的動作中,我們假設您的Win32平台FPC 編譯器安裝的路徑如下: C:\Programas\fpc\bin\i386-win32

而您的FPC 2.1版的原始碼是放在這個目錄裡的: C:\Programas\fpc

步驟三 – 開始建置

要建置交叉編譯器,PATH這個環境變數需要設定正確,因為在Windows系統裡面,安裝程式會使用到這個環境變數。要確認這個環境變數是否設定正確,您可以建立一個批次檔:

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

請把上面這個批次檔放在C:\Programas\fpc\compiler這個目錄中,然後開啟一個Windows命令提示字元視窗,切換到該目錄,執行該批次檔。

在整個編譯過程中,您應該不會看到任何錯誤才對。(譯者已經在2008/1/5測試過,的確沒有問題)

您還需要把交叉編譯器程式ppccrossarm.exe放在C:\Programas\fpc\compiler目錄中;另外還需要把一些.o跟 .ppu檔案放在C:\Programas\fpc\rtl\units\arm-wince目錄裡面。

編譯完成後,請將這幾個檔案放到安裝Free Pascal的目錄中: ppccrossarm.exe必須放在C:\Programas\fpc\bin\arm-wince目錄中,而wince相關的單元檔則是要放在C:\Programas\fpc\units\arm-wince目錄中。

步驟四 – 設定

您需要在C:\Programas\fpc\bin\arm-wince中建立fpc.cfg這個設定檔,才能正確的使用ppccrossarm.exe這個交叉編譯器程式。

請先在C:\Programas\fpc\bin\arm-wince目錄中建立一個名為fpc.cfg的新純文字檔案,然後把以下這幾行設定加入該檔案裡面:

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

最後再把C:\Programas\fpc\bin\arm-wince 跟C:\Programas\fpc\bin\i386-win32這兩個路徑加入您的PATH 環境變數裡面即可。

步驟四變形 – 進行設定,讓編譯器保留建置Win32跟WinCE兩種應用程式的能力

如果您要讓同一份FPC能夠編譯Win32跟WinCE的應用程式專案,請這樣設定: * 把交叉編譯器ppcrossarm.exe程式直接複製到fpc/bin/i386-win目錄裡面。

現在,如果您要編譯WinCE的應用程式,請在編譯時指定要建置的平台與CPU種類就行了。

附註: 如果您是用Lazarus的話,就不用弄得這麼複雜了,請確定您的編譯器路徑是設定為"fpc.exe",而非"ppc386.exe"即可。

編譯一個測試用的專案

在您建置了交叉編譯器,或安裝了從網站上下載的交叉編譯器程式之後,您就可以開始撰寫測試用的專案了,以下是引導您建立簡單Hello world應用程式的教學。

步驟一 – 安裝與設定模擬器

您需要Windows CE模擬器,並設定它好讓ActiveSync能與模擬器連線,ActiveSync需要安裝PocketCMD,這是一個命令提示字元工具,好用來執行您的Hellow world程式。

請從微軟的網站下載Pocket PC,這些模擬器都是模擬ARM CPU的。

要把模擬器設定來跟ActiveSync連線,則請參考這裡,這部分的教學跟英文版網頁的不太一樣,因為譯者已經把自己在Vista上面使用Windows Mobile 6模擬器的設定心得寫成中文與大家分享了。

步驟二 – 安裝命令提示字元工具

請下載由SymbolicTools所提供的”PocketCMD”,請從這裡下載

如果需要Pocket PC命令提示字元工具相關資訊,請參考WinCE port notes。

步驟三 – 進行編譯

提供給您編譯用的範例程式,我們假設這個檔案存為test.pas:

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.

要編譯test.pas這個程式的命令為:

ppcrossarm test.pas

編譯完成後,會產生一個名為test.exe的執行檔,請將之複製到您的Windows CE模擬裝置上面來執行。

這裡提供了一些用這個方式建置出來的應用程式的螢幕截圖。

為WinCE應用程式進行偵錯

GDB可以透過ActiveSync對您的WinCE應用程式進行遠端偵錯,您可以從這個網址下載Win32平台上對arm-wince模擬器進行偵錯的GDB 6.4: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip

幾個提示:

如何使用:

首先,把您的Pocket PC模擬裝置進行”連接底座”的程序,好跟ActiveSync進行連線。

然後啟動gdb:

gdb --tui <位於您電腦上的執行檔>

如果您要使用提示字元模式進行偵錯,則請在GDB的提示字元中直接輸入:

run或是r

GDB會把您的執行檔複製到模擬裝置上的\gdb目錄,並開始執行它。

以下是最常用的幾個GDB命令與縮寫:

您也可以在以下網址參閱它的說明文件: http://www.gnu.org/software/gdb/documentation

建置FPC函式庫

如果您要把FPC的函式庫建置出Arm-WinCE版本的話,請切換到函式庫的目錄,並執行以下指令:

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

舉例來說,如果您要建置FCL,請切換到fpc\fcl目錄,然後執行上面的指令,建置完成後,Arm-WinCE版本的FPC函式庫就會建置在fpc\fcl\units\arm-wince目錄裡面了。

說明文件

一些跟WinCE相關的註記

WinCE 移植註記

要讓WinCE能支援命令提示字元模式,您必須要安裝下列程式的其中之一:

PPC Command Shell的功能比PocketCMD少,而且還有些問題。執行上述兩個程式的時候,不管原來是否已經有命令模式字元視窗在執行中,都會開啟一個新的命令模式字元視窗。

參考文件

相關連截

以下是跟ARM CPU架構相關的一些文件:

貢獻與聯繫

如果您有任何跟WinCE移植相關的問題,請與Yury Sidorov連繫(只能寫英文喔, 他是俄羅斯人)


From the Free Pascal wiki, page "WinCE port/zh TW", as it stood on 2008-01-07 after a change by Dennies, 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.

版本1,最後由WikiArchive於修改。