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!!!

sábado, noviembre 29, 2008

Motorola A1200

Despues de este parto de casi 9 meses sin postear nada, lo primero que quiero decirles es que desde ahora hasta puede que tenga algo mas de tiempo para estar on line y darles algo de data. No me han despedido ni me he retirado por invalidez, solo sali un lugar que no me dejaba tiempo para entrar en una compañia de telecomunicaciones diferente.

Hace un tiempo en un ataque de freaky adquiri un Motorola A1200, y debo decirles que es un muy buen aparato basado en Linux y ademas... Como si fuera poco... Tambien funciona como telefono celular!!!

El principal atractivo comienza con el hecho de poder compilar aplicaciones nativas, eso de poder programar en C o C++ es algo que da muchas ventajas a las personas que nos gusta investigar. En esta oportunidad voy a pasarles algunas especificaciones tecnicas, algunos tips para poder utilizar un cross compiler, varios sitios de interes y algunos consejos utiles.

Las especificaciones tecnicas que les voy a pasar a continuacion fueron extraidas del archivo /proc/cpuinfo del telefono:

Processor : Intel XScale-PXA27x rev 7 (v5l)
BogoMIPS : 103.76
Features : swp half thumb fastmult edsp
CPU implementor : 0x69
CPU architecture: 5TE
CPU variant : 0x0
CPU part : 0x411
CPU revision : 7
Cache type : undefined 5
Cache clean : undefined 5
Cache lockdown : undefined 5
Cache unified : harvard
I size : 32768
I assoc : 32
I line length : 32
I sets : 32
D size : 32768
D assoc : 32
D line length : 32
D sets : 32
Hardware : Motorola Ezx Platform
Revision : 0000
Serial : 0000000000000000

Como podemos ver es un buen procesador, el mismo tipo del que podemos encontrar en maquinas de mano como Palm E2 de que ya hablaremos en su oportunidad, estoy preparando un articulo basado en Opie para la Tungsten E2.

No obstante esas caracteristicas, ha demostrado una versatilidad al mejor estilo de cualquier desktop con algunas aplicaciones, lo mas complicado de este aparato es darle con tecla al desarrollo de aplicaciones graficas nativas, dada la version de QT que utiliza la gente de motorola.

Cabe destacar que colaborar con la gente de motorola es casi imposible, aun cuando intente por todos los medios indicados oficialmente colaborar con le proyecto del kernel para esta plataforma de harware, ellos olimpicamente han puesto una excusa diferente cada vez que uno lo intenta. Todavia no he recivido respuesta de ninguno de ellos, a esta repetida negativa.

El cross compiler no es dificil de conseguir, de hecho tenemos un muchacho que lo ha conseguido sin muchos problemas en : http://kegel.com/crosstool/
debemos de tener especial cuidado al configurar el amiente de compilacion con especial cuidado y debemos tener en cuenta que todo lo que queramos instalar en el A1200 debe ser instalado en la tarjeta flash dado que no podemos escribir la ROM del aparato, que es donde esta montado root /.

Hay dos herramientas que debemos tener en cuenta a la hora de compilar una aplicacion para este telefono, una es el compilador, ezx-crosstool-0.5; la otra es el kit de desarrollo dev-ezx-0.2.0 que permite compilar aplicaciones basadas en QT. Dicho kit aun no he podido testearlo del todo, pero estimo que en lo sucesivo sera probado con el minimalista "Hello World!!!".
Yo en lo particular, me he creado un script shell que define una serie de aliases para los nombres de los binarios del kit del compilador, de esa manera cada vez que voy a compilar algo, ejecuto el script configure de la aplicacion en cuestion, ejecuto mi script con los aliases (por ejemplo, alias gcc='arm-linux-gcc') y asi puedo compilar sin parchar en la mayoria de los casos el fuente.

Los sitios que voy a recomendar que tiene muchas cosas de interes para esta plataforma:

http://opensource.motorola.com
http://www.motorolafans.com
http://savannah.gnu.org

Los interesados en hacer alguna pregunta, como siempre pueden escribirme.

Have Fun!!!

jueves, abril 17, 2008

Como sacar videos de Infobae... hmmm

runSWF("");

De donde debemos extraer la direccion del viewer:
/imgs/notatv/video.swf?functionZoom=setZoomNotaD&data_str=http%3A%2F%2Fwww.infobae.com%2Fadjuntos%2Fdownload%2F45%2F0204593.flv

Esto es con el reproductor:
http://www.infobae.com/imgs/notatv/video.swf?functionZoom=setZoomNotaD&data_str=http://www.infobae.com/adjuntos/download/45/0204593.flv

de donde se puede extraer el video solamente:
data_str=http://www.infobae.com/adjuntos/download/45/0204593.flv

Finalmente, se puede bajar el video desde:
http://www.infobae.com/adjuntos/download/45/0204593.flv

el que debe convertise a AVI o MPEG para poder reproducirse.

Have Fun!!!