Difference between revisions of "PalmOS port/es"

From Lazarus wiki
Jump to navigationJump to search
(New page: {{PalmOS port}}    La versión PalmOS está en un estado muy inicial. Esta versión ha sido puesta en marcha y es mantenida por Mazen Neifer. Peter Vreman ha convertido las...)
 
m (Fixed syntax highlighting; removed categories included in template)
 
(8 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
* La versión 2.1.x del compilador tiene soporte (muy experimental) para compilar para PalmOS.
 
* La versión 2.1.x del compilador tiene soporte (muy experimental) para compilar para PalmOS.
 
* La CPU [[ARM]] CPU está soportada.
 
* La CPU [[ARM]] CPU está soportada.
* Las siguients plataformas serán soportadas:
+
* Las siguientes plataformas serán soportadas:
 
** Zire72 – version PalmOS: 5.2.8
 
** Zire72 – version PalmOS: 5.2.8
 
* Las unidades RTL de Base no están convertidas.
 
* Las unidades RTL de Base no están convertidas.
Line 28: Line 28:
 
===Compilador cruzado===
 
===Compilador cruzado===
  
   Vamos asuponer que estás usando una instalación linux debian (sid) y que el compilador FPC ya está instalado y configurado correctamente. En debian debemos instalar el pauete '''[http://packages.debian.org/unstable/devel/fp-compiler fp-compiler]''' con la orden ''apt-get install fp-compiler''.
+
   Vamos a suponer que estás usando una instalación Linux Debian (sid) y que el compilador FPC ya está instalado y configurado correctamente. En debian debemos instalar el paquete '''[http://packages.debian.org/unstable/devel/fp-compiler fp-compiler]''' con la orden ''apt-get install fp-compiler''.
  
 
   Ahora hay que construir el compilador cruzado FPC para el procesador ARM. Para llevarlo a cabo necesitamos las últimas fuentes (desde la versión 2.1.x) además de la instalación de trabajo de FPC 2.0.2 o 2.0 antes mencionadas. Obtendremos las fuentes del repositorio de fuentes Subversion: http://www.freepascal.org/develop.html#svn
 
   Ahora hay que construir el compilador cruzado FPC para el procesador ARM. Para llevarlo a cabo necesitamos las últimas fuentes (desde la versión 2.1.x) además de la instalación de trabajo de FPC 2.0.2 o 2.0 antes mencionadas. Obtendremos las fuentes del repositorio de fuentes Subversion: http://www.freepascal.org/develop.html#svn
Line 40: Line 40:
 
===El proceso de Construcción===
 
===El proceso de Construcción===
  
&nbsp;&nbsp;&nbsp;A fin de construir el compilador cruzado, es necesario tener una variable de entorno <tt>PATH</tt> correcta. Haz el favor de asegurarte de que las rutas de''PATH'' son las adecuadas:
+
&nbsp;&nbsp;&nbsp;A fin de construir el compilador cruzado, es necesario tener una variable de entorno <tt>PATH</tt> correcta. Haz el favor de asegurarte de que las rutas de ''PATH'' son las adecuadas:
  
 
  <pre> make all CPU_TARGET=arm OS_TARGET=palmos</pre>
 
  <pre> make all CPU_TARGET=arm OS_TARGET=palmos</pre>
Line 52: Line 52:
 
===Archivo de Configuración===
 
===Archivo de Configuración===
  
&nbsp;&nbsp;&nbsp;Now you need to edit your FPC configuration file <tt>${HOME}/.fpc.cfg</tt> in order to use <tt>ppccrossarm.exe</tt> easy and add the following lines to it:
+
&nbsp;&nbsp;&nbsp;Ahora tienes que editar el archivo de configuración de FPC <tt>${HOME}/.fpc.cfg</tt> a fin de utilizar <tt>ppccrossarm</tt> de forma fácil, para ello añade estas líneas al mismo:
<pre>
+
<pre> #IFDEF FPC_CROSSCOMPILING
#IFDEF FPC_CROSSCOMPILING
+
  -Tpalmos
-Tpalmos
+
  -Fu${FPC_SRC}/rtl/units/arm-palmos
-Fu${FPC_SRC}/rtl/units/arm-palmos
+
  -XParm-palmos-
-XParm-palmos-
+
  #ENDIF </pre>
#ENDIF
 
</pre>
 
  
==Compiling a Test Project==
+
==Compilar un proyecto de Prueba==
  
&nbsp;&nbsp;&nbsp;You compiled the compiler! Now, what can I do with it? This is a tutorial to create a hello world like software with your new compiler.
+
&nbsp;&nbsp;&nbsp;¡Has compilado el compilador! ahora, ¿qué puedo hacer con él? Este es una tutoría para crear un programa ''hola mundo'' con su nuevo compilador.
  
===Installing and Configuring the Emulator===
+
===Instalar y configurar el emulador===
  
&nbsp;&nbsp;&nbsp;First of all, you need to install the Palm Device Emulator. This is a windows binary, but works well with WINE on a Debian Linux (sid) box.
+
&nbsp;&nbsp;&nbsp;En primer lugar, es necesario instalar el emulador de dispositivos Palm. Se trata de un binario de Windows, pero funciona bien con WINE en un linux Debian (sid).
TODO
 
  
===Compiling===
+
&nbsp;&nbsp;&nbsp;Cosas para hacer (''ToDo'')
  
&nbsp;&nbsp;&nbsp;A example file to compile:
+
===Compilar===
 +
&nbsp;&nbsp;&nbsp;El archivo de ejemplo para compilar:
 +
<syntaxhighlight lang=pascal>
 +
program prueba;
 +
  {$apptype console}
 +
  var
 +
    Str: string;
 +
  begin
 +
    WriteLn('Programa desarrollado con:');
 +
    WriteLn('El compilador Free Pascal');
 +
    WriteLn('');
 +
    WriteLn('Por favor escribe tu nombre:');
 +
    ReadLn(Str);
 +
    WriteLn('Tu nombre es: ' + Str);
 +
  end.</syntaxhighlight>
  
<delphi>
+
&nbsp;&nbsp;&nbsp;Ejemplo de línea de órdenes para compilar <tt>prueba.pas</tt>:
program test;
 
  
{$apptype console}
+
<tt> ppcrossarm prueba.pas</tt>
  
var
+
&nbsp;&nbsp;&nbsp;Ahora debes coger el archivo ejecutable <tt>prueba.prc</tt> y copiarlo en tu aparato Palm y ejecutarlo.
  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.
 
</delphi>
 
  
&nbsp;&nbsp;&nbsp;Sample command line to compile <tt>test.pas</tt>:
+
==Depurando aplicaciones PalmOS==
  
<tt>ppcrossarm test.pas</tt>
+
&nbsp;&nbsp;&nbsp;Esta sección todavía no está disponible
  
&nbsp;&nbsp;&nbsp;You should get <tt>test.prc</tt> executable file. Copy it to your Palm device and run it.
+
==Construyendo las librerías de FPC==
  
==Debugging PalmOS applications==
+
&nbsp;&nbsp;&nbsp;Si quieres construir las librerías disponibles para FPC, por ejemplo, quieres construir la FCL, ejecuta las siguientes órdenes.
  
&nbsp;&nbsp;&nbsp;This section is not yet available
+
<pre> cd ${FPC_SRC}/fpc
 +
  make OS_TARGET=palmos CPU_TARGET=arm PP=ppcrossarm fcl</pre>
  
==Building FPC libraries==
+
&nbsp;&nbsp;&nbsp;Tendrás las unidades de la FCL en <tt>${FPC_SRC}/fpc/fcl/units/arm-palmos</tt>.
  
&nbsp;&nbsp;&nbsp;If you want to build libraries available with FPC, for example you want to build FCL then execute the commands above.
+
==Documentación==
  
<pre>*
+
===notas de la versión PalmOS===
cd ${FPC_SRC}/fpc
+
* PalmOS no tiene soporte para aplicaciones de consola por defecto. Pero puedes instalar el soporte de consola tú mismo. Ten en cuenta que FPC crea aplicaciones GUI para PalmOS de forma predeterminada. Para crear la aplicación de consola se debes utilizar la opción <tt>-WC</tt> del compilador o poner la directiva <tt>{$APPTYPE CONSOLE}</tt> en el código fuente.
make OS_TARGET=palmos CPU_TARGET=arm PP=ppcrossarm fcl
 
</pre>
 
  
&nbsp;&nbsp;&nbsp;You will get FCL units in <tt>${FPC_SRC}/fpc/fcl/units/arm-palmos</tt>.
+
==Enlaces==
 +
* [http://www.stack.nl/~marcov/buildfaq.pdf Buildfaq] es un ''FAQ'' general acerca de cómo crear y configurar FPC.
  
==Documentation==
+
&nbsp;&nbsp;&nbsp;Éstos son algunos enlaces relacionados con la arquitectura de cpu ARM
  
===PalmOS port notes===
+
* [http://www.armcorepro.com/ ARM Core Developers Forum] Aunque no muy activa.
* 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 <tt>-WC</tt> compiler switch or put <tt>{$APPTYPE CONSOLE}</tt> directive to source code.
 
 
 
==Links==
 
* [http://www.stack.nl/~marcov/buildfaq.pdf Buildfaq] is a general FAQ about how to build and configure FPC.
 
 
 
&nbsp;&nbsp;&nbsp;Here are some links related to ARM CPU Architecture
 
 
 
* [http://www.armcorepro.com/ ARM Core Developers Forum] Not that much active though.
 
 
* [http://www.inf.u-szeged.hu/gcc-arm/ GCC ARM Improvement Project]
 
* [http://www.inf.u-szeged.hu/gcc-arm/ GCC ARM Improvement Project]
* [http://www.heyrick.co.uk/assembler/index.html ARM ASSEMBLER] Good information and codes related to arm assembly language.
+
* [http://www.heyrick.co.uk/assembler/index.html ARM ASSEMBLER] Buena información y código relacionados con el lenguaje ensamblador de ARM.
 
* [http://www.gnuarm.com/ GNU ARM toolchain for Cygwin, Linux and MacOS]
 
* [http://www.gnuarm.com/ GNU ARM toolchain for Cygwin, Linux and MacOS]
* [http://soc.csie.ndhu.edu.tw/source/intro_embedded/ch2-arm-2.ppt ARM Instruction Sets & Programs] Very good and consice information about arm architecture
+
* [http://soc.csie.ndhu.edu.tw/source/intro_embedded/ch2-arm-2.ppt ARM Instruction Sets & Programs] Muy buena y concisa información sobre la arquitectura ARM
* [http://web.njit.edu/~baltrush/arm_stuff/ARMInst.ppt The ARM Instruction Set ] Another fine power point file about arm
+
* [http://web.njit.edu/~baltrush/arm_stuff/ARMInst.ppt El juego de instrucciones ARM] Una buena presentación sobre ARM
  
==Contacts==
+
== Contactos ==
  
 
&nbsp;&nbsp;&nbsp;[mailto:mazen@freepascal.org Mazen NEIFER]
 
&nbsp;&nbsp;&nbsp;[mailto:mazen@freepascal.org Mazen NEIFER]

Latest revision as of 06:49, 23 February 2020

English (en) español (es) português (pt)

   La versión PalmOS está en un estado muy inicial. Esta versión ha sido puesta en marcha y es mantenida por Mazen Neifer. Peter Vreman ha convertido las cabeceras del API de PalmOS.

Estado

  • La versión 2.1.x del compilador tiene soporte (muy experimental) para compilar para PalmOS.
  • La CPU ARM CPU está soportada.
  • Las siguientes plataformas serán soportadas:
    • Zire72 – version PalmOS: 5.2.8
  • Las unidades RTL de Base no están convertidas.

Tutoría de Construcción

   Durante la tutoría algunos pasos se presuponen para demostrar el proceso de construcción. Sustituye las rutas con las adecuadas de tu sistema.

Utilidades binarias cruzadas (Cross binutils)

   Estas son las herramientas básicas necesarias para crear ejecutables:

  • arm-palmos-ld : Enlazador
  • arm-palmos-as : Ensamblador
  • arm-palmos-ar : Archivador (Crea archivos de enlace inteligente (smartlinking) .a)
  • arm-palmos-strip: Eliminador de secciones de los binarios ejecutables

   y algunos otros.

   Estas herramientas puedes encontrarlas en un paquete listo para utilizar de debian linux (sid) prc-tools-utils. Utiliza el mandato "apt-get install prc-tools-utils" para obtenerlo e instalarlo. De lo contrario, es necesario obtenerlos de http://www.palmos.com/dev/dl/dl_tools/. Extrae en un directorio de tu máquina. En una máquina con Debian se instalan en /usr/bin/arm-palmos-*

Compilador cruzado

   Vamos a suponer que estás usando una instalación Linux Debian (sid) y que el compilador FPC ya está instalado y configurado correctamente. En debian debemos instalar el paquete fp-compiler con la orden apt-get install fp-compiler.

   Ahora hay que construir el compilador cruzado FPC para el procesador ARM. Para llevarlo a cabo necesitamos las últimas fuentes (desde la versión 2.1.x) además de la instalación de trabajo de FPC 2.0.2 o 2.0 antes mencionadas. Obtendremos las fuentes del repositorio de fuentes Subversion: http://www.freepascal.org/develop.html#svn

Entorno

   Suponemos que las fuentes de Free Pascal están aquí: ${FPC_SRC}

 PATH="/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:${FPC_SRC}/compiler"

El proceso de Construcción

   A fin de construir el compilador cruzado, es necesario tener una variable de entorno PATH correcta. Haz el favor de asegurarte de que las rutas de PATH son las adecuadas:

 make all CPU_TARGET=arm OS_TARGET=palmos

   Al finalizar la compilación no debes ver errores.

   Ahora tendrás el binario ppccrossarm en ${FPC_SRC}/compiler y varios archivos .o y .ppu en ${FPC_SRC}/rtl/units/arm-palmos

   Copia estos archivos a tu instalación FPC de trabajo. El compilador cruzado ppccrossarm debe ir a /usr/local/bin/arm-palmos y las unidades a /usr/local/lib/fpc/units/arm-palmos

Archivo de Configuración

   Ahora tienes que editar el archivo de configuración de FPC ${HOME}/.fpc.cfg a fin de utilizar ppccrossarm de forma fácil, para ello añade estas líneas al mismo:

  #IFDEF FPC_CROSSCOMPILING
  -Tpalmos
  -Fu${FPC_SRC}/rtl/units/arm-palmos
  -XParm-palmos-
  #ENDIF 

Compilar un proyecto de Prueba

   ¡Has compilado el compilador! ahora, ¿qué puedo hacer con él? Este es una tutoría para crear un programa hola mundo con su nuevo compilador.

Instalar y configurar el emulador

   En primer lugar, es necesario instalar el emulador de dispositivos Palm. Se trata de un binario de Windows, pero funciona bien con WINE en un linux Debian (sid).

   Cosas para hacer (ToDo)

Compilar

   El archivo de ejemplo para compilar:

 program prueba;
   {$apptype console}
  var
    Str: string;
  begin
    WriteLn('Programa desarrollado con:');
    WriteLn('El compilador Free Pascal');
    WriteLn('');
    WriteLn('Por favor escribe tu nombre:');
    ReadLn(Str);
    WriteLn('Tu nombre es: ' + Str);
  end.

   Ejemplo de línea de órdenes para compilar prueba.pas:

 ppcrossarm prueba.pas

   Ahora debes coger el archivo ejecutable prueba.prc y copiarlo en tu aparato Palm y ejecutarlo.

Depurando aplicaciones PalmOS

   Esta sección todavía no está disponible

Construyendo las librerías de FPC

   Si quieres construir las librerías disponibles para FPC, por ejemplo, quieres construir la FCL, ejecuta las siguientes órdenes.

 cd ${FPC_SRC}/fpc
  make OS_TARGET=palmos CPU_TARGET=arm PP=ppcrossarm fcl

   Tendrás las unidades de la FCL en ${FPC_SRC}/fpc/fcl/units/arm-palmos.

Documentación

notas de la versión PalmOS

  • PalmOS no tiene soporte para aplicaciones de consola por defecto. Pero puedes instalar el soporte de consola tú mismo. Ten en cuenta que FPC crea aplicaciones GUI para PalmOS de forma predeterminada. Para crear la aplicación de consola se debes utilizar la opción -WC del compilador o poner la directiva {$APPTYPE CONSOLE} en el código fuente.

Enlaces

  • Buildfaq es un FAQ general acerca de cómo crear y configurar FPC.

   Éstos son algunos enlaces relacionados con la arquitectura de cpu ARM

Contactos

   Mazen NEIFER