PalmOS port/pt: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: PalmOS port/pt
| Old | New | Line | |
|---|---|---|---|
| 1 | + | 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. | |
| 2 | + | ||
| 3 | + | ## Estado atual | |
| 4 | + | ||
| 5 | + | - O compilador 2.1.x dá suporte (muito experimental) a PalmOS. | |
| 6 | + | - [[ARM]] CPU tem suporte. | |
| 7 | + | - As seguintes plataformas terão suporte: | |
| 8 | + | - Zire72 – PalmOS versão 5.2.8 | |
| 9 | + | - Unidades-base da RTL ainda não estão portadas. | |
| 10 | + | ||
| 11 | + | ## Building Tutorial | |
| 12 | + | ||
| 13 | + | Durante o tutorial, alguns caminhos serão supostos para demonstrar o processo de construção. Simplesmente substitua estes caminhos pelos do seu sistema. | |
| 14 | + | ||
| 15 | + | ### Cross binutils | |
| 16 | + | ||
| 17 | + | Estas são as ferramentas básicas necessárias à criação de executáveis, como: | |
| 18 | + | ||
| 19 | + | - **arm-palmos-ld** : Vinculador | |
| 20 | + | - **arm-palmos-as** : Montador | |
| 21 | + | - **arm-palmos-ar** : Archiver (Cria arquivos .a de smartlinking) | |
| 22 | + | - **arm-palmos-strip** e alguns outros. | |
| 23 | + | ||
| 24 | + | Você precisa das cross-binutils para arm-palmos, o Debian Linux (sid) provê um pacote pronto para uso em **[prc-tools-utils](http://packages.debian.org/unstable/otherosfs/prc-tools)**. 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/>. | |
| 25 | + | ||
| 26 | + | Extraia-os em algum diretório no caminho do seu sistema. Em Debian eles estão instalados em `/usr/bin/arm-palmos-*` | |
| 27 | + | ||
| 28 | + | ### Cross-compilador | |
| 29 | + | ||
| 30 | + | 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](http://packages.debian.org/unstable/devel/fp-compiler)** ("apt-get install fp-compiler") | |
| 31 | + | ||
| 32 | + | 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> | |
| 33 | + | ||
| 34 | + | ### Ambiente | |
| 35 | + | ||
| 36 | + | Vamos supor que os seus fontes do Free Pascal estão localizados em: `${FPC_SRC}` | |
| 37 | + | ||
| 38 | + | `PATH="/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:${FPC_SRC}/compiler"` | |
| 39 | + | ||
| 40 | + | ### O processo de construção | |
| 41 | + | ||
| 42 | + | 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: | |
| 43 | + | ||
| 44 | + | make all CPU_TARGET=arm OS_TARGET=palmos | |
| 45 | + | ||
| 46 | + | No final da compilação você não deve ter nenhuma mensagem de erro. | |
| 47 | + | ||
| 48 | + | Você deve ter um `ppccrossarm` em `${FPC_SRC}/compiler` e alguns arquivos `.o` e `.ppu` em `${FPC_SRC}/rtl/units/arm-palmos` | |
| 49 | + | ||
| 50 | + | 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`. | |
| 51 | + | ||
| 52 | + | ### Arquivo de configuração | |
| 53 | + | ||
| 54 | + | 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: | |
| 55 | + | ||
| 56 | + | #IFDEF FPC_CROSSCOMPILING | |
| 57 | + | -Tpalmos | |
| 58 | + | -Fu${FPC_SRC}/rtl/units/arm-palmos | |
| 59 | + | -XParm-palmos- | |
| 60 | + | #ENDIF | |
| 61 | + | ||
| 62 | + | ## Compilando um projeto de teste | |
| 63 | + | ||
| 64 | + | Você compilou o compilador. Agora o que fazer com ele? Este é um tutorial para criar um programa hello world com o seu novo compilador. | |
| 65 | + | ||
| 66 | + | ### Instalando e configurando o emulador | |
| 67 | + | ||
| 68 | + | 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. | |
| 69 | + | ||
| 70 | + | ### Compilando | |
| 71 | + | ||
| 72 | + | Um arquivo de exemplo para compilar: | |
| 73 | + | ||
| 74 | + | program test; | |
| 75 | + | ||
| 76 | + | {$apptype console} | |
| 77 | + | ||
| 78 | + | var | |
| 79 | + | Str: string; | |
| 80 | + | begin | |
| 81 | + | WriteLn('Software Developed with:'); | |
| 82 | + | WriteLn('The Free Pascal Compiler'); | |
| 83 | + | WriteLn(''); | |
| 84 | + | WriteLn('Please, enter your name:'); | |
| 85 | + | ReadLn(Str); | |
| 86 | + | WriteLn('Your name is: ' + Str); | |
| 87 | + | end. | |
| 88 | + | ||
| 89 | + | Sample de linha de commando para compilar `test.pas`: | |
| 90 | + | ||
| 91 | + | `ppcrossarm test.pas` | |
| 92 | + | ||
| 93 | + | Você deve pegar o executável `test.prc`. Copie-o para o seu Palm e o execute. | |
| 94 | + | ||
| 95 | + | ## Debugging PalmOS applications | |
| 96 | + | ||
| 97 | + | This section is not yet available | |
| 98 | + | ||
| 99 | + | ## Construindo bibliotecas para o FPC | |
| 100 | + | ||
| 101 | + | Se você quiser construir bibliotecas acessíveis ao FPC, por exemplo você quer construir FCL, então execute os comandos seguintes: | |
| 102 | + | ||
| 103 | + | * | |
| 104 | + | cd ${FPC_SRC}/fpc | |
| 105 | + | make OS_TARGET=palmos CPU_TARGET=arm PP=ppcrossarm fcl | |
| 106 | + | ||
| 107 | + | Você pode pegar unidades FCL em `${FPC_SRC}/fpc/fcl/units/arm-palmos`. | |
| 108 | + | ||
| 109 | + | ## Documentation | |
| 110 | + | ||
| 111 | + | ### Notas para o porte para PalmOS | |
| 112 | + | ||
| 113 | + | - O PalmOS não tem suporte para aplicações de console por padrão. Mas você pode instalar você mesmo o suporte para console. Note que o FPC cria aplicações GUI para PalmOS por padrão. Para criar aplicações de console você deve usar a switch do compilador `-WC` ou pôr a diretiva `{$APPTYPE CONSOLE}` nos fontes. | |
| 114 | + | ||
| 115 | + | ## Links | |
| 116 | + | ||
| 117 | + | - [Buildfaq](http://www.stack.nl/~marcov/buildfaq.pdf) é um arquivo genérico de FAQ sobre como construir e configurar o FPC. | |
| 118 | + | ||
| 119 | + | Aqui estão alguns links relacionados com a arquitetura ARM CPU | |
| 120 | + | ||
| 121 | + | - [ARM Core Developers Forum](http://www.armcorepro.com/) Não muito ativa, no entanto. | |
| 122 | + | - [GCC ARM Improvement Project](http://www.inf.u-szeged.hu/gcc-arm/) | |
| 123 | + | - [ARM ASSEMBLER](http://www.heyrick.co.uk/assembler/index.html) Boas informações e código relacionado com linguagem Assembly para ARM. | |
| 124 | + | - [GNU ARM toolchain for Cygwin, Linux and MacOS](http://www.gnuarm.com/) | |
| 125 | + | - [ARM Instruction Sets & Programs](http://soc.csie.ndhu.edu.tw/source/intro_embedded/ch2-arm-2.ppt) Informação muito boa e concisa sobre a arquitetura ARM. | |
| 126 | + | - [The ARM Instruction Set](http://web.njit.edu/~baltrush/arm_stuff/ARMInst.ppt) Outro bom arquivo sobre ARM. | |
| 127 | + | ||
| 128 | + | ## Contacts | |
| 129 | + | ||
| 130 | + | [Mazen NEIFER](mailto:mazen@freepascal.org) | |
| 131 | + | ||
| 132 | + | --- | |
| 133 | + | *From the Free Pascal wiki, page "PalmOS port/pt", as it stood on 2007-09-25 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](/wiki-contact).* |
