WinCE port/pt
English · Italiano · Português · Русский · 中文(台灣)
O porte do WinCE é bem completo e utilizável. Ele foi iniciado e é mantido por Yury Sidorov. Cabeçalhos Oliver (Oro06) portados da API do WinCE .
Estado atual
- O compilador 2.1.x dá suporte à compilação para WinCE.
- ARM CPU tem suporte.
- As seguintes plataformas têm suporte:
- Pocket PC 2002 – WinCE versão 3.0
- Pocket PC 2003 – WinCE versão 4.20
- Pocket PC 2003 Segunda Edição – WinCE versão 4.21
- Windows Mobile 5.0 – WinCE versão 5.0
- RTL e unidades FCL estão funcionando.
Construindo o Tutorial
Durante o tutorial alguns caminhos serão supostos para demonstrar o processo de contrução. Apenas substitua aqueles caminhos pelos do seu sistema.
Passo 1 - Binutils para cross-compilação:
Estas são as ferramentas básicas necessárias para criar executáveis, como: Vinculador (ld), Montador (as), Archiver (ar) (cria arquivos .a do smartlinking), strip e algumas outras.
Você precisa das binutils para cross-compilação para ARM-WinCE, pegue-os em ftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip for Win32.
Extraia-os em algum diretório no caminho da sua máquina. Vamos supor que você os extraiu em: C:\Programas\arm
Passo 2 - Cross-compilador
Agora você precisa construir o cross-compilador FPC para o processador ARM. Para fazer isso você precisa dos fontes mais recentes do FPC 2.1.x e a instalação do FPC 2.0.4 funcionando para Win32.
Pegue os fontes mais recentes do repositório do 2.1.x no Subversion: http://www.freepascal.org/develop.html#svn
Vamos supor que o seu ompilador FPC para Win32 está localizado em: C:\Programas\fpc\bin\i386-win32
E os seus fontes do Free Pascal 2.1.x estão localizados em: C:\Programas\fpc
Passo 3 - O Processo de Construção
Para construir o cross-compilador é necessário ter uma variável de ambiente PATH correta. No Windows é muito fácil ter um PATH junto com a informação colocada pelos instaladores. Para se certificar de que o seu Path está correto, crie um arquivo de lote do DOS com o seguinte código:
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\arm
make cycle CPU_TARGET=arm OS_TARGET=wincePonha este arqquivo em C:\Programas\fpc\compiler, abra a linha de comando do Windows, vá para esta pasta e execute o arquivo de lote.
No fim da compilação você não deve ter mensagens de erro.
Você deve ter um ppccrossarm.exe em C:\Programas\fpc\compiler e alguns arquivos .o e .ppu em C:\Programas\fpc\rtl\units\arm-wince
Copie eses arquivos para a sua instalaçãodo Free Pascal. O cross-compilador ppccrossarm.exe deve ir para C:\Programas\fpc\bin\arm-wince e as unidades para C:\Programas\fpc\units\arm-wince
Passo 4 - Arquivo de configuração
Você precisa criar um arquivo de configuração fpc.cfg na pasta C:\Programas\fpc\bin\arm-wince para usar o ppccrossarm.exe com facilidade.
Crie um arquivo fpc.cfg vazio na pasta C:\Programas\fpc\bin\arm-wince e adicione as seguintes linhas:
-Twince
-FuC:\Programas\fpc\units\arm-wince
-XParm-wince-
-FDC:\Programas\armFinalmente adicione C:\Programas\fpc\bin\arm-wince e C:\Programas\fpc\bin\i386-win32 à sua variável de ambiente PATH.
Lembre-se de substituir os caminhos pelos do seu sistema.
Compilando um Projeto de Teste
Você compilou o compilador. Agora, o que você pode fazer com ele? Este é um tutorial para criar um projeto "hello world" com o seu novo compilador.
Passo 1 - Instalando e Configurando o Emulador
Você vai precisar de um emulador Windows CE configurado para ActiveSync. O ActiveSync é necessário para instalar o PocketCMD, uma ferramenta de linha de comando para executar o nosso programa ""hello world'.
Baixe o emulador de dispositivo livre Pocket PC da Microsoft. Ele emula o ARM CPU. http://msdn.microsoft.com/mobility/downloads/Emulator/default.aspx
Existe um tutorial de como configurar o emulador para ActiveSync here.
Passo 2 - Instalando a linha de comando
Baixe e instale o PocketCMD da SymbolicTools. Pegue-o aqui
Verifique a seção WinCE port notes abaixo para maioresa detalhes sobre linhas de comando em Pocket PC.
Passo 3 - Compilando
Um arquivo de exemplo para compilar:
program test;{$apptype console}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 de linha de comando para compilar test.pas:
ppcrossarm test.pas
Você vai pegar o executável test.exe. Copie-o para o seu dispositivo Windows CE e execute.
Aqui está um screenshot de um programa criado dessa forma.
Depurando aplicações WinCE
O GBD pode ser usado para depurar suas aplicações WinCE remotamente via ActiveSync. Baixe o GDB 6.4 para hots Win32 e arm-wince target aqui: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip
Algumas dicas:
- Passe o parâmetro
--tuipara o GDB para habilitar a interface TUI que faz a depuração mais confortável. - Use finais de linha unix (LF only) nos seus fontes Pascal. Senão o GDB vai mostrar os fontes incorretamente.
Como usar:
Primeiro faça a conexão ActiveSync no seu dispositivo Pocket PC.
Então carregue o gdb:
gdb --tui <seu_executavel_no_pc_local>
No prompt do gdb escreva:
run ou só r
GDB vai copiar o seu executável para o seu dispositivo na pasta \gdb e executá-lo.
Aqui está uma pequena lista dos comandos mais necessários do GDB:
r args- executa o programa com args argumentos.s- step into.n- step over.ni- step over instrument. Pula instrução assembly .c- continua a execução.br <function_name>- configura um breakpoint emfunction_name. UsaPASCALMAINpara configurar um breakpoint no início do programa.br <source_file>:<line_number>- configura um breakpoint na linha especificada dos fontes.disas- mostra um disassembly da localização atual.x/fmt address- dump de memória no endereço com formato especial. use "help x" para maiores informações.bt- back trace. imprime back trace da chamada do stack.where- Mostra a linha atual e a função e o stack das chamadas that got you there.q- Sai do gdb.
Para aprender mais sobre como usar o GDB leia sua documentação aqui: http://www.gnu.org/software/gdb/documentation
Construindo bibliotecas do FPC
Se você quer construir bibliotecas disponíveis com o FPC vá para a pasta de bibliotecas e execute:
PATH=C:\Programas\fpc\bin\i386-win32;C:\Programas\fpc\compiler;C:\Programas\arm
make OS_TARGET=wince CPU_TARGET=arm PP=ppcrossarm.exePor exemplo você quer construir a FCL. Vá para a pasta fpc\fcl e execute o comando abaixo. Você vai obter as unidades da FCL compiladas em fpc\fcl\units\arm-wince.
Documentação
Algumas notas sobre WinCE
- Se você estiver obtendo "Uknown error! Error code : 0xc1" e usando dlls, o erro deve haver porque você está usando algumas export entries não encontradas no arquivo da dll. Verifique a seção export da dll e o nome delas e como utilizá-las.
Notas sobre o porte para WinCE
- Procedimento
chdirsempre produz um erro (WinCE não suporta configuração do diretório atual). - Todos os arquivos/diretórios precisam ser absolutos (começados com \).
- WinCE é OS unicode. Todos os parâmetros de seqüência de caracteres para chamadas de API precisam ser PWideChar.
- WinCE n~~ao tem suuporte para environment strings.
- WinCE não tem suporte para aplicações de console por padrão. Mas você pode instalar suporte para console você mesmo. Note que o FPC cria aplicações GUI para WinCE target por padrão. Para criar aplicações de console você deve usar
-WCcompiler switch ou pôr a diretiva{$APPTYPE CONSOLE}nos fontes.
Para habilitar console em WinCE instale um dos seguintes programas:- PocketCMD by SymbolicTools. Essa é a solução recomendada. Pegue-o aqui
- PPC Command Shell de Microsoft Windows Mobile Developer Power Toys. Pegue-o aqui
PPC Command Shell tem menos funcionalidades que o PocketCMD. Tem também menos problemas. Um deles - uma nova janela de console é aberta mesmo se uma aplicação é iniciada da linha de comando do console.
Veja também
Links
- Informações úteis de WinCE http://www.rainer-keuchel.de/documents.html
- Emulador standalone de disositivo Pocket PC da Microsoft. Ele emula o ARM CPU. Pegue-o aqui
- KOL-CE. Porte para WinCE da biblioteca KOL GUI. http://sourceforge.net/projects/kol-ce/
- Porte Mamaich de Pocket PC de GCC http://mamaich.uni.cc
- Buildfaq é uma FAQ geral sobre como construir e configurar o FPC.
Aqui estão alguns links relacionados com a arquitetura ARM CPU
- ARM Core Developers Forum Não muito ativo entretanto.
- GCC ARM Improvement Project
- ARM ASSEMBLER Boa informação e código relacioando com a linguagem arm assembly.
- GNU ARM toolchain for Cygwin, Linux and MacOS
- Microsoft Windows CE .NET 4.2 ARM Guide
- ARM Instruction Sets & Programs Informação muito boa e concisa sobre arquitetura arm
- The ARM Instruction Set Outro bom arquivo power point sobre arm
Contato
Escreva qualquer pergunta sobre o porte para WinCE para Yury Sidorov
From the Free Pascal wiki, page "WinCE port/pt", as it stood on 2007-09-29 after a change by Antoniog, 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.
