TARJETA GPBOT Y LINUX |
La tarjeta GPBOT se puede usar desde Linux. Este es el primer año que hemos empezado y algunas cosas las hemos tenido que hacer nosotros, pero ya es usable al 100%. Las opciones que tenemos son:
Usar el programa ICS a través de WINE. Funciona... pero no la grabación. Parece que el puerto serie todavía no funciona del todo bien bajo wine. Se ha probado en una Debian/Sarge, usando WINE 0.0.20040121-2. Aquí puedes ver un pantallazo.
Usando programas nativos para Linux. Es una mejor solución, pero lo que se pierde es disponer de un entorno que lo traiga todo integrado. Tampoco se pueden hacer simulaciones. El ensamblador es ligeramente diferente, puesto que usa el estilo de directivas de GNU. Las herramientas disponibles son:
Ensamblador ASXXX. Familia de ensambladores libres, para varios micros de 8 bits, entre los que se encuentra el 6808.
SDCC: Compilador de C libre, para diferentes micros, entre ellos el 6808. Se ha evaluado con programas sencillos y funciona bastante bien en la GPBOT. El ensamblador que usa es el ASXXX, que viene incluido en la distribución.
Gpbot-down: Descarga de programas en la GPBOT. Licencia GPL.
NOTA: No podemos utilizar los mismos ficheros .asm con el ensamblador de Linux que con el entorno ICS en Windows. Los nemónicos son los mismos, pero cambian las directivas del ensamblador
Puesta en marcha del ensamblador
Primero vamos a ensamblar programas y los grabaremos. Los pasos a seguir son:
Instalamos el compilador de C SDCC. Está disponible para múltiples plataformas, incluyendo Windows. Se puede descargar de esta página. En Debian también está disponible, por lo que se puede instalar haciendo un “apt-get install sdcc sdcc-doc sdcc-libraries”.
El ensamblador para el 68hc08 viene con el paquete del compilador. Se llama as-hc08. Si hemos instalado correctame el SDCC, también tendremos el as-hc08.
Bajamos el fichero modelo.tgz, que contiene la plantilla que utilizaremos para los programas en ensamblador, un ejemplo, y los ficheros con la definición de los registros. También se incluye un Makefile para realizar el ensamblado. Nuestros proyectos los crearemos modificando este Makefile.
Descomprimimos:
$ tar vzxf modelo.tgz
Accedemos al directorio
$ cd modelo
Ensamblamos. Para ello ejecutamos make. Si todo ha ido bien se nos habrá creado el fichero portb-sal.S19, que podemos descargar en la GPBOT.
$ make
as-hc08 -go portb-sal.asm
./link08 portb-sal
rm portb-sal.rel
Con esto ya podemos ensamblar programas. Se puede utilizar un entorno de trabajo como el Anjuta, desde el que se editan los programas. Para hacer el ensamblado más sencillo es recomendable utilizar el Makefile proporcionado.
Descarga de programas en la GPBOT: instalacion del software gpbot-down
Utilizaremos la utilidad gpbot-down, que se encuentra en el paquete gpbot-tools-0.1.tgz. Los pasos para utilizarlos son los siguientes:
Bajar el paquete gpbot-tools-0.1.tgz
Descomprimirlo
$ tar vzxf gpbot-tools-0.1.tgz
Compilar las librerías. Por un lado se han creado las librerías que permiten acceder al modo monitor del 6808. Primero hay que compilarlas:
$ cd gpbot-tools/gpbot-dev/src
$ make
Con esto se nos genera los ficheros .o necesario. También se compila el programa gpbot-dev, que se usa para depurar las librerias de monitorización. Sólo tiene utilidad para desarrolladores.
Compilar el programa gpbot-down:
$ cd ../../gpbot-down
$ make
Si todo ha ido bien, se nos habrá creado el programa gpbot-down, que usaremos para realizar la descarga
Instalación. Sólo hay que copiar el fichero gpbot-down a un directorio que se encuentre en el path. Por ejemplo en el /usr/bin. O si lo preferimos, desde alguno de nuestra cuenta.
Prueba de funcionamiento del GPBOT-DOWN
Conectar la gpbot al puerto serie del PC
Alimentarla
Ir al directorio donde tengamos el fichero .S19 a descargar. Por ejemplo al directorio donde hemos bajado el paquete modelo.tgz
$ cd modelo
Ejecutar:
$ gpbot-down portb-sal.S19
Si todo ha ido bien, aparecerá lo siguiente:
GPBOT-DOWN. (c) Juan Gonzalez. Febrero 2004. Licencia GPL
Grabación de programas en la Flash de la tarjeta GPBOT
Tamaño: 49 bytes
Borrando Flash...OK
Vector de RESET: 8000
Grabando bloque de datos...OK
Vectores de interrupcion...OK
FINALIZADO
-->EJECUTANDO!!!
Por defecto se toma el COM1. Se puede especificar otro puerto de la siguiente manera:
$ gpbot-down portb-sal.S19 -com2
EJEMPLOS EN ENSAMBLADOR PARA LA GPBOT Y LINUX
Fichero Fuente |
Fichero ejecutable |
Descripción |
---|---|---|
--------- |
Todo lo necesario para trabajar en ensamblador: ficheros con las definiciones de los registros, mapa de memoria, plantilla modelo y fichero Makefile de ejemplo |
|
---------- |
Plantilla modelo para hacer programas en ensamblador |
|
PUERTO A. Ejemplo de configuración del puerto A para salida. Se configuran todos los pines para salida y se envía un valor. Si se conectan leds se puede visualizar el dato. |
||
PUERTO A. Ejemplo de configuración de pines para entrada y salida. Los 4 bits de mayor peso del puerto A se configuran para salida y los 4 de menor peso para entrada |
||
PUERTO B. Ejemplo de configuración del puerto B para salida. Se configuran todos los pines para salida y se envía un valor. Si se conectan leds se puede visualizar el dato. |
||
PUERTO B. Ejemplo de configuración de pines para entrada y salida. Los 4 bits de mayor peso del puerto B se configuran para salida y los 4 de menor peso para entrada |
||
TEMPORIZADOR 1. Ejemplo de cómo realizar una pausa por espera activa (sin interrupciones), utilizando el temporizador 1. Se pueden hacer esperas desde 100ms hasta 25 segundos. |
||
MOTORES. Ejemplo de activación de los motores 1 y 2. El programa los pone en marcha y se queda en un bucle infinito |
||
MOTORES. Ejemplo para los motores 1 y 2. Se hace que vayan hacia adelante, atrás, derecha, izquierda y finalmente se paran. |
||
SENSORES. Ejemplo para el sensor IR1. Utilización en modo digital. Se lee el valor devuelto por el sensor IR1 y se saca por el PUERTO B. Si se conectan unos leds se puede ver el estado. Cuando lee negro, devuelve '1' y para el blanco '0' |
||
CONVERSOR A/D. Lectura del canal analógico 0 (PB0). Se saca el valor por el puerto A. Si se conecta una placa con leds se puede ver el valor digital de la muestra. |
Juan González Gómez. 2004
Se conceden permisos para copiar, distribuir y modificar la información contenida en esta página siempre y cuando se mantenga esta nota