PalmOS port/pt
│
English (en) │
español (es) │
português (pt) │
O porte para PalmOS está nos seus inícios. Ele foi começado e será mantido por Mazen Neifer. Peter Vreman portou os cabeçalhos da PalmOS API.
Estado atual
- O compilador 2.1.x dá suporte (muito experimental) a PalmOS.
- ARM CPU tem suporte.
- As seguintes plataformas terão suporte:
- Zire72 – PalmOS versão 5.2.8
- Unidades-base da RTL ainda não estão portadas.
Building Tutorial
Durante o tutorial, alguns caminhos serão supostos para demonstrar o processo de construção. Simplesmente substitua estes caminhos pelos do seu sistema.
Cross binutils
Estas são as ferramentas básicas necessárias à criação de executáveis, como:
- arm-palmos-ld : Vinculador
- arm-palmos-as : Montador
- arm-palmos-ar : Archiver (Cria arquivos .a de smartlinking)
- arm-palmos-strip e alguns outros.
Você precisa das cross-binutils para arm-palmos, o Debian Linux (sid) provê um pacote pronto para uso em prc-tools-utils. Um simples "apt-get install prc-tools-utils" vai ser suficiente. Senão você vai precisar pegá-los em http://www.palmos.com/dev/dl/dl_tools/.
Extraia-os em algum diretório no caminho do seu sistema. Em Debian eles estão instalados em /usr/bin/arm-palmos-*
Cross-compilador
Vamos supor que você está usando a instalação Debian Linux (sid) e o compillador FPC já está instalado e configurado corretamente. No Debian Linux (sid) você pode instalar o pacote fp-compiler ("apt-get install fp-compiler")
Agora você precisa construir o compilador FPC para o processador ARM. Para isso você precisa dos últimos fontes do FPC 2.1.x além da instalação do FPC 2.0.2 ou 2.0 funcionando. Pegue a última versão 2.1.x do Subversion do repositório de fontes: http://www.freepascal.org/develop.html#svn
Ambiente
Vamos supor que os seus fontes do Free Pascal estão localizados em: ${FPC_SRC}
PATH="/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:${FPC_SRC}/compiler"
O processo de construção
Para construir o cross-compilador é necessário ter uma variável de ambiente PATH corretamente configurada. Certifique-se de que o seu caminho está correto:
make all CPU_TARGET=arm OS_TARGET=palmos
No final da compilação você não deve ter nenhuma mensagem de erro.
Você deve ter um ppccrossarm em ${FPC_SRC}/compiler e alguns arquivos .o and .ppu em ${FPC_SRC}/rtl/units/arm-palmos
Agora copie os arquivos para a sua instalação do Free Pascal. O cross-compilador ppccrossarm deve ir para /usr/local/bin/arm-palmos e as unidades para /usr/local/lib/fpc/units/arm-palmos.
Arquivo de configuração
Você precisa editar o arquivo de configuração ${HOME}/.fpc.cfg do FPC para usar facilmente o ppccrossarm.exe e adicionar as seguintes linhas a ele:
#IFDEF FPC_CROSSCOMPILING -Tpalmos -Fu${FPC_SRC}/rtl/units/arm-palmos -XParm-palmos- #ENDIF
Compilando um projeto de teste
Você compilou o compilador. Agora o que fazer com ele? Este é um tutorial para criar um programa hello world com o seu novo compilador.
Instalando e configurando o emulador
Antes de tudo você precisa instalar o Palm Device Emulator. Ele é um binário Winows mas funciona bem com o WINE no Debian Linux (sid) Box.
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 commando para compilar test.pas:
ppcrossarm test.pas
Você deve pegar o executável test.prc. Copie-o para o seu Palm e o execute.
Debugging PalmOS applications
This section is not yet available
Building FPC libraries
If you want to build libraries available with FPC, for example you want to build FCL then execute the commands above.
* cd ${FPC_SRC}/fpc make OS_TARGET=palmos CPU_TARGET=arm PP=ppcrossarm fcl
You will get FCL units in ${FPC_SRC}/fpc/fcl/units/arm-palmos.
Documentation
PalmOS port notes
- PalmOS does not have support for console applications by default. But you can install console support by yourself. Please note that FPC creates GUI applications for PalmOS target by default. To create console application you should use -WC compiler switch or put {$APPTYPE CONSOLE} directive to source code.
Links
- 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
- ARM Instruction Sets & Programs Very good and consice information about arm architecture
- The ARM Instruction Set Another fine power point file about arm