Viernes, 31 Enero 2014 00:00

Puesta en marcha del sistema TQ2440

Escrito por
Valora este artículo
(0 votos)

Para empezar a trabajar con el TQ2440, se deben considerar ciertos aspectos de los sistemas embebidos tales como: la conexión con el PC, que se realiza mediante puerto serie; el gestor de arranque, que prepara todo lo que necesita el sistema operativo para funcionar; y la elección del sistema operativo, con el que se quiera realizar el desarrollo (Linux, Win CE). A continuación se irán explicando los diferentes conceptos para realizar la puesta en marcha del sistema.

 

Conexión del TQ2440 al PC

El conexionado del sistema TQ2440 al PC es muy simple, sólo hay que tener en cuenta los diferentes tipos de conexión que se pueden realizar y las diferentes funciones que tiene cada uno de ellos, ya que dependiendo del punto de partida que se considere, hay que hacer un determinado tipo de conexión. Para tener más claro los tipos de conexión, se describirán cada uno de ellos.

  • Conexión por puerto serie RS232:Con este tipo de conexión se consigue la monitorización y ejecución del menú de “u-boot”. Para realizar esta conexión es necesario tener un software de monitoreo, en este caso se hace uso de “MINCOM”.

cable rs232

 

  • Conexión vía USB: Este tipo de conexión se realiza para subir las imágenes (Kernel) a la plataforma.

cable usb

  • Conexión vía Ethernet: Para mayor comodidad a la hora de trabajar con exportaciones de archivos, del PC a la placa, se aprovecha la conexión Ethernet para hacer más sencilla dicha tarea. Este tipo de conexión combinado con un terminal de consola, hará que la transferencia de archivos se realice mediante un solo comando. También se utiliza para que el TQ2440 realice un arranque de ficheros a través de NFS, es decir, el sistema podrá arrancar desde un sistema de ficheros que se encuentra en el PC. Esto ahorra tiempo y ciclos de grabación en la memoria flash.

adaptador

 

Gestor de Arranque

La plataforma TQ2440 viene con un sistema de arranque precargado en la memoria NOR, u-boot, y 3 particiones creadas en la memoria NAND. En primer lugar se encuentra un u-boot, que será el encargado de pasar al Kernel las variables(bootargs) necesarias para el arranque, posteriormente se encuentra una zImage del Kernel, que es un kernel compilado y empaquetado, y finalmente un entorno de pruebas basado en Qt.

Quizás la primera pregunta que se plantea al ver la descripción anterior es ¿Por qué hay un u-boot en cada memoria?. El propósito de la memoria NOR, es tener un apoyo del sistema, de esta manera siempre se podrá recuperar el sistema sin tener que pasar por grabar una imagen del u-boot mediante JTAG, lo cual es una tarea muy tediosa. Este mecanismo es muy importante, ya que si por algún motivo el usuario borra accidentalmente el u-boot de la memoria NAND, podrá volver a recuperarlo sin problemas. Para seleccionar desde qué memoria se va a iniciar el sistema, se dispone de un conector como el de la figura

 

nand

 

Al arrancar el sistema desde la memoria NAND, aparece un menú como el de la figura

 arranque_nand

 

Particiones

En la imagen compilada que se proporciona en la web del fabricante, se pueden diferenciar 3 particiones en la memoria NAND.

Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
0x000000200000-0x000000400000 : "EmbedSky_Board_kernel"
0x000000400000-0x00000ff80000 : "EmbedSky_Board_yaffs2"

En los primeros 256KB está establecido U-boot, con un offset de 2MB, se encuentra otra partición destinada a la imagen del kernel(zImage), en este caso con un tamaño de 2MB. A partir de los 4MB se establece un sistema de archivos tipo yaffs2 hasta el final de la memoria, que en este caso es de 256MB. Se puede observar que hay un espacio del cual no se hace ninguna referencia entre la primera y segunda partición de 1.75MB. Para saber lo que hay en este espacio, se debe escribir el comando “mtdparts” en la consola del uboot y se obtendrá lo siguiente:

 

mtdparts

 

Se pueden crear más particiones, de hecho, es recomendable crear una partición para la instalación de aplicaciones, tal y como se hace en sistemas Linux. Esto proporciona una ventaja importante, ya que cualquier cambio en los ficheros no va a afectar los datos que se encuentren en esta partición. Para crear una nueva partición hay que recompilar el uboot modificando las particiones, en la que se añadirá la que se quiere crear. La compilación del uboot es llevada a cabo mediante un compilador cruzado. El siguiente paso sería modificar los fuentes del kernel y recompilarlo para que reconozca la nueva partición.

 

Instalación del kernel para linux

Para la instalación del kernel hay que seleccionar la opción “3” del menú u-boot, la cual se quedará a la espera del fichero de la imagen. Para la subida de la imagen hay que hacer uso de un programa llamado “usbpush”, el cual será ejecutado desde otra ventana de terminal. El tiempo de instalación será de varios minutos y el estado del proceso se mostrará en el terminal.

 

Software basado en Linux

La elección del sistema operativo para una plataforma embebida es muy importante y hay que tener en cuenta varios aspectos como velocidad, rendimiento, flexibilidad, herramientas de desarollo, etc. Sin duda alguna el software libre es el más indicado para el propósito de este documento. A nivel de software basado en Linux para sistemas embebidos, se pueden distinguir dos tendencias:

 

  1. Qt Extended (conocida como Qtopia hasta el 30 de septiembre de 2008) que es una plataforma de aplicaciones para dispositivos móviles que utilizan Linux como sistema operativo y fue desarrollado por la empresa Qt Software. Este proyecto es abandonado por la empresa, pero como tenía una categoría libre bajo licencia GPL fue retomada por la comunidad y recibió el nombre de Qt Extended Improve. Una empresa llamada “Troll Tech” desarrolló un fork (toma como referencia Qt extended) y ha creado lo que se conoce como QT Embedded (Proyecto OPIE), es decir, una aplicación de interfaz de usuario (GUI) y un sistema basado en ventanas para linux embebidos.

  2. La segunda alternativa es GPE, que proporciona un entorno al usuario con una interfaz para PDA que ejecuten Linux o cualquier otro sistema operativo basado en UNIX. GPE proporciona una infraestructura fácil y potente para el desarrollo de aplicaciones sobre tecnologías como GTK+, SQLite, DBUS y GStreamer.

 

El uso de GTK frente a Qt/Embedded ha abierto una pequeña guerra entre OPIE vs GPE del estilo KDE vs GNOME. En este sentido OPIE es más veterano, lo que le ha permitido contar con gran número de adeptos, frente al joven proyecto GPE.

De esta manera se concluye que va a ser QT Embedded el sistema que se va a utilizar para la plataforma TQ2440. La última versión disponible es QT 4.6.3 embedded. Para su instalación se sigue el mismo proceso que para la instalación del kernel, con la diferencia que la opción que ha de ser marcada en el menú u-boot es la “t”. Una vez que se encuentre instalada la imagen de QT embedded, se puede comprobar que el sistema TQ2440 arranca desde un ejemplo en QT, en el que se puede observar la interfaz gráfica.

 

Arranque por NFS

El servicio NFS (Network File Service) permite arrancar el sistema operativo vía red, esto es una característica muy importante a la hora de trabajar con sistemas embebidos, pues evita perdida de tiempo en la ejecución de aplicaciones y no desgasta el uso de la memoria NAND. En primer lugar hay que crear una carpeta compartida que será el punto de arranque del sistema, esta carpeta deberá contener un sistema de ficheros igual que el del sistema embebido. Hay dos maneras de obtener dicho sistema de ficheros:

 

  1. Crear las correspondientes carpetas y cargar los diferentes elementos y librerías que componen el sistema.

  2. Hacer una copia del sistema embebido, lo cual resulta una tarea mucho más sencilla que la forma anterior.

 

Una vez que se tiene el sistema de ficheros, se le pone un nombre a la carpeta, en este caso recibe el nombre de “root_nfs”. Es importante que la ruta de ubicación de esta carpeta no sea demasiado larga, ya que podría puede presentar fallos. La configuración por parte del PC esta lista, ahora queda realizar la configuración en el sistema TQ2440. A continuación se explicará paso a paso su configuración:

 

  1. Abra un Terminal y ejecute el programa MINICOM.

  2. Arrancar la placa en modo desarrollo, es decir, presionar la barra espaciadora al encender el sistema.

  3. Seleccione la opción 0, se abrirá el Menú de Parámetros.

  4. Seleccione la opción 1 e introduzca los diferentes datos que son requeridos: IP del PC, IP del sistema embebido y la ruta de la carpeta que se ha creado anteriormente. En la siguiente figura se detallan dichos datos y al final se muestra la configuración que se ha cargado en la variable bootargs.

  5. Presione la tecla S para guardar la configuración, de esta manera la información será persistente y no habrá que volver a realizar el proceso de nuevo, al no ser que el PC cambie su IP, lo que conlleva volver a realizar todos los pasos.

  6. Vuelva al menú principal con la letra q, y reinicie el sistema presionando 8. Ahora el sistema arrancará desde la carpeta compartida.

 

Visto 131593 veces Modificado por última vez en Martes, 11 Marzo 2014 20:06

Lo último de Juan C. Martínez Chaves

Artículos relacionados (por etiqueta)

Más en esta categoría: « Instalación paso a paso TQ2440

1239 comentarios

Deja un comentario

Descripción

Este sitio web es para todos aquellos interesados en aprender y compartir conocimientos y experiencias acerca de los sistemas embebidos. También contará con un blog que me permitirá ir publicando nuevos artículos y noticias acerca de herramientas, configuraciones y demás temas de interés sobre las plataformas embebidas con las que me encuentro trabajando. La idea principal de este sitio es poder tener un soporte completamente en Español, para así, crear una comunidad importante y demostrar que nuestra lengua también está muy difundida.