domingo, diciembre 14, 2008

A1200 - CrossCompiler

He estado analizando el comportamiento de varias herramientas de desarrollo para este telefono movil y solo una de ellas cubre el minimo de necesidades para un desarrollador.

En este post voy a pasarles una data util acerca de como configurar un NetBans 6.1 con el C/C++ plugin, el ambiente del cross compiler arm usando GCC y las librerias de desarrollo para el entorno grafico basado en EZX y Qt-Embedded.

La configuracion del ambiente de desarrollo es bastante censilla, y basicamente no van a necesitar mucho mas que seguir el instructivo con el que vienen.
En lo personal he conseguido en www.motorolafans.com, un paquete con un ambiente armado, que es muy facil de setear... Lo unico malo de este ambiente es que el paquete de GCC viene compilado para CygWin, pero facilmente pueden reemplazarlo por una version para su OS nativo que mas les guste.

En resumidas ya sea CygWin o bien algun otro Unix Like...

Toman el archivo samr7-ezx-crosstool-foxe6-sdk.tar.gz, descompriman con

tar zxvf samr7-ezx-crosstool-foxe6-sdk.tar.gz

ahi dentro hay un directorio opt/ y dentro de este hay dos directorios principales...
Uno es opt/crosstool/ que contiene el compilador, el cual pueden reemplazar por alguna version que hallan previamente compilado para su OS nativo.
El otro es opt/dev-ezx/ queque contiene el ambiente de desarrollo para tu A1200...
Entren en opt/dev-ezx/ y editen setENV.sh borrando la primera linea que dice #!/bin/bash.
(Aganlo sin chistar! jejejeje)

Deberas copiar las librerias desde tu telefono al directorio opt/dev-ezx/a1200/lib/, para poder extraer las librerias de tu telefono deberas ejecutar el comando

tar zcvf ezx-lib.tar.gz /usr/lib/

Si se bajan algun sample como este, pueden compilarlo con las siguientes instrucciones basicas:

  1. cd opt/dev-ezx/
  2. . ./setENV.sh (si, dice punto, espacio punto barra y comando...)
  3. tar zxvf helloezx.tar.gz
  4. cd helloEZX
  5. progen -o helloezx.pro
  6. tmake helloezx.pro -o Makefile
  7. make
Luego, toman el archivo HelloEZX y lo copian en su SD card de su telefono, lo ejecutan y veran un ejemplo bueno de un objeto form de Qt en su A1200.

Ahora desde NetBeans 6.1...
Aclaro la version por que por ahi con versiones mas viejas puede haber algun cambio en los seteos que pasare a explicar, por ende, seria bueno que lo bajen de aqui antes de seguir.
Sigan los siguientes pasos para configurar el netbeans para poder compila con su herramienta crosstool.

  1. Abran su NetBeans
  2. Menu -> Tools -> Options
  3. C/C++ settings
  4. Tool Collection box, click en el boton Add.
  5. Base directory = /opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux/bin
  6. Pestaña "Build Tools"
  7. Tool Collection Familly = GNU
  8. Tool Collection Name = A1200 (o el que mas les guste)
  9. Tool Collection, seleecionan A1200
  10. C Compiler = arm-linux-gcc
  11. C++ Compiler = arm-linux-g++
  12. Pestaña "Code Assistance"
  13. Seleccionar "Tools Collection" -> A1200
  14. En la pestaña "C Compiler", agregan los directorios include dentro de opt/crosstool/ y dentro de opt/dev-ezx/
  15. En la pestaña "C++ Compiler", solo agregan los include dentro de opt/dev-ezx/
  16. Click en el boton OK
Ya tienen configurado el NetBeans para compilar sus programas desde alli.

Algunas consideraciones finales.
La documentacion que puede servirles de ayuda para comenzar el la doc oficial de Qt-Embedded, pero no es la unica que les permitira codificar aplicaciones dado que es de vital importancia que conozcan como funciona el API de EZX, de la cual aun no he tenido ni noticias en la red. Por otro lado la version Qt-Embedded utilizada en el telefono A1200 es 2.3.6, la cual pueden encontrar entre los links. Algunas propiedades de Qt no estan del todo implementadas por EZX y pueden generar algunos errores, o inestabilidades del sistema. Respecto a los archivos publicados, el autor, es decir yo, no soy responsable por cualquier daño ocacionado a sus equipos y no puedo asegurar la estabilidad del sistema usando cualquiera de estas herramientas.

Algunos links de interes para puedan bajar las herramientas de desarrollo, y algo de info para aquellos que les gusta investigar un poco mas.

CrossTool
Qt-Embedded
AppDevelopment

Espero les sea de utilidad...

Have Fun!!!