Cuaderno de laboratorio 0: El entorno software de trabajo |
Entorno software
Las prácticas se realizarán en un entorno GNU/Linux. La distribución instalada es una Debian/Sarge.
La programación del microcontrolador 6808 de la tarjeta GPBOT se hará en lenguaje C. El entorno empleado es:
Entorno de programación/editor: Anjuta (v. 1.22) (Aunque los alumnos podrán utilizar otros editores, como vim o Emacs)
Compilador de C cruzado SDCC (v.2.4.0)
Grabación de programas en la GPBOT: gpbot-down (Feb-2004)
Todos los programas empleados tienen licencia GPL por lo que se pueden copiar y podrán ser usados en los ordenadores particulares de cada alumno, no sólo en el laboratorio.
Configuración de Anjuta
El fichero de configuración de Anjuta que yo uso lo podéis bajar de aquí. El aspecto del entorno con esta configuración es este.
Para configurarlo, serguir los siguientes pasos:
Bajar el fichero de configuración: anjuta-cfg.tgz
Grabarlo en nuestro directorio home
Descomprimirlo:
$ tar vzxf anjuta-cfg.tgz .anjuta/ .anjuta/user.properties .anjuta/session.properties .anjuta/tools.xml |
Al arrancarlo tomará la nueva configuración
Ejemplo “Hola mundo”
Vamos a grabar nuestro primer programa en la tarjeta GPBOT. Los pasos a seguir son los siguientes:
Descargar el fichero hola_mundo.tgz . Además del programa de ejemplo hola-mundo.c, contiene otros dos ejemplos, un fichero Makefile de prueba y el proyecto para Anjuta.
Descomprimirlo:
$ tar vzxf hola_mundo.tgz hola_mundo/ hola_mundo/Changelog.txt hola_mundo/hola_mundo.prj hola_mundo/ledp.c hola_mundo/luces.c hola_mundo/Makefile hola_mundo/mc68hc908gp32.h hola_mundo/hola-mundo.c |
Entrar en el directorio hola_mundo y arrancar Anjuta, especificando el proyecto hola_mundo.prj:
$ cd hola_mundo $ anjuta hola_mundo.prj & |
Podéis editar el programa hola-mundo.c, desplegando la carpeta Source de la parte izquierda, y pinchando en hola-mundo.c
Para compilar, pulsáis F11 en el Anjuta o bien abris un terminal y ejecutáis make.
Al compilarse el fichero hola_mundo.c, a parte de generarse bastantes ficheros intermedios, aparecen dos que nos interesan: hola_mundo.asm y hola_mundo.S19. El primero es la traducción a lenguaje ensamblador del 6808 y el segundo el fichero ejecutable con el código máquina. Este será el que se grabe en la flash del 6808.
Para grabar, conectar el cable monitor (gp_mon) al puerto serie del PC y por el otro lado a la GPBOT, en el conector que pone “monitor”:
Alimentar la GPBOT, bien con unos cables que vayan a la fuente de alimentación, bien con un alimentador propio o bien mediante una batería.
Ejecutar el siguiente comando:
$ gpbot-down hola-mundo.S19 GPBOT-DOWN. (c) Juan Gonzalez. Febrero 2004. Licencia GPL Grabación de programas en la Flash de la tarjeta GPBOT Tamaño: 52 bytes Borrando Flash...OK Vector de RESET: 8011 Grabando bloque de datos...OK Vectores de interrupcion...OK FINALIZADO -->EJECUTANDO!!! |
Si aparece lo mismo que en los mensajes de arriba, todo ha ido bien y el programa se habrá grabado correctamente en la flash.
Si la GPBOT no está conectada al PC, o no está correctamente alimentada, aparecerá un mensaje como el siguiente:
$ gpbot-down hola-mundo.S19 GPBOT-DOWN. (c) Juan Gonzalez. Febrero 2004. Licencia GPL Grabación de programas en la Flash de la tarjeta GPBOT ERROR: No se ha entrado en modo monitor |
Probando el “hola mundo”
El funcionamiento del programa “hola mundo” es muy sencillo:
Se configura el puerto B del 6808 para todos los bits sean de salida (Para ello hay que poner el valor 0xFF en el registro DDRB)
Se envía un valor por el puerto B (simplemente asignando el valor a enviar al registro PORTB)
Para poder ver su funcionamiento es necesario conectar unos leds al puerto B. Aquí hay una foto:
La placa con los leds no es obligatorio construirla, pero viene muy bien para depurar el software. ¡En un microcontrolador no tenemos una pantalla donde ver los printf!!
Aquí está la placa de los leds, junto con el esquema. Es necesaria una resistencia de 220 ohm y un led para cada bit del puerto (en total 8)
[Página principal del laboratorio]
Juan González. 2005.
Última modificación: 28 Feb 2005