1 Presentación
Esta distribución (puedes descargar la imagen .ISO del CDROM y su virtualización con Qemu desde aquí) ofrece un entorno básico de trabajo orientado a la programación de microControladores de las familias AVR (Atmel) y PIC (Microchip) sobre GNU/Linux.
Desde una interfaz de consola el usuario será capaz de editar código, ensamblar/compilar, simular (AVR) y grabar el dispositivo de forma sencilla y rápida.
Puede ser de utilidad tanto a personas familiarizadas con las herramientas de desarrollo bajo Windows como aquellas otras que inician su andadura en el apasionante mundo de los Dispositivos Programables.
Es conveniente conocer el manejo de Linux en modo texto para moverse con soltura dentro de microLINUX_vem 2.0. Si deseas ayuda escribe:
#taller
Donde encontrarás un grupo de actividades destinada al aprendizaje de los fundamentos de Linux.
2 Necesidades Hardware para trabajar con ulvem2rev2
Tanto el tamaño de la distribución así como el formato de presentación (CD-ROM) imponen unos recursos mínimos del computador mayores que en la versión anterior.
Otro aspecto a considerar es el hardware adicional necesario para la programación de los icrocontroladores y su canal de conexión con el sistema.
Esto implica la necesidad de nuevos elementos del PC:
Lector de CD-ROM
Memoria RAM igual o superior a 16 Mbytes
Procesador 486 o superior
Disquetera (si la BIOS no puede iniciar el sistema desde la unidad de lectura óptica)
Teclado expandido QWERTY con la disposición de teclas en Español
Monitor 14 pulgadas o superior
Tarjeta gráfica EGA o superior
Puerto Serie (programador PIC, por ejemplo T-20se)
Puerto Paralelo (según el programador del AVR)
Programador + cable de conexión + microControlador AVR
Programador + cable de conexión + microControlador PIC
Opcionalmente es interesante contar con:
Disco duro (y S.O. con entorno gráfico, visor de imágenes y lector de ficheros ".pdf")
Puerto USB
Entrenador de PIC y/o AVR
3 Contenido Software
General
Comandos y utilidades del sistema: BusyBox versión v1.00-rc1
Editor de textos: Nano versión 1.2.5
Compilador de C: Tcc (Tiny C Compiler) versión 0.9.23
Disco de inicio para acceder al CD-ROM y arrancar microLINUX_vem 2.0 desde un disquete (orientado a equipos con BIOS antiguas) freeDOS versión 1.0
nano (Editor de textos)
make (Automatización de tareas de ensamblado/compilado)
Específico
PIC
Herramientas de desarrollo: Gputils versión 0.13.2
Compilador C (Hi-tech): Picl versión 8.05PL1
Programador vía serie: Picprog versión 1.7
AVR
Herramientas de desarrollo: Binutils versión 2.15
Compilador de C: Avr-gcc versión 3.4.3
Depurador: Avr-gdb versión 6.1
Simulador: Simulavr versión 0.1.2.2
Programador: Uisp versión 20050207
4 Programando en lenguaje ensamblador
El desarrollo de un programa en Ensamblador se compone de las siguientes etapas:
1º Especificación del problema
2º Diseño del diagrama de flujo
3º Escritura del programa en lenguaje ensamblador:
#nano <fichero_fuente.asm>
4º Ensamblado:
#ensamblapic <fichero_fuente.asm> (uControlador PIC) ó
#ensamblavr <fichero_fuente.asm> (uControlador AVR)
5º Simulación y depuración:
#simuavr <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.
#ensamblapic
#ensamblavr
#simuavr
#depuravr
5 Programando en lenguaje de alto nivel
El desarrollo de un programa en Lenguaje C se compone de las siguientes etapas:
1º Especificación del problema
2º Diseño del programa en pseudocódigo
3º Escritura del programa en lenguaje C:
#nano <fichero_fuente.c>
4º Compilado:
#compilapic <fichero_fuente.c> (uControlador PIC) ó
#compilavr <fichero_fuente.c> (uControlador AVR)
5º Simulación y depuración:
#simuavr <opciones> [fichero_binario.hex] (uControlador AVR)
#depuravr <opciones> (uControlador AVR)
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.
#compilapic
#compilavr
#simuavr
#depuravr
6 Simulación y depuración de un programa
Simulador
Su función consiste en ejecutar un programa codificado para un microcontrolador
concreto con la intención de mostrar información de la memoria interna y
registros de este en tiempo de ejecución. También es posible ajustar
manualmente algunos parámetros como:
Contenido de un registro
Modificación del contador de programa
Valor de la memoria (sram, eeprom, flash)
Depurador
Encargado de mostrar los sucesos internos de un programa mientras se está
ejecutando ó bien presenta su estado interno en el momento en que se interrumpió
inesperadamente. Por tanto ayuda a localizar y corregir errores de un programa
durante la ejecución del mismo.
Las acciones más importantes pueden resumirse en:
Someter a un programa a ciertas condiciones
Examinar el estado interno del programa cuando se ha parado
Observar el estado de las variables durante la ejecución del programa
Cambiar cosas del programa con la intención de corregir los efectos de los fallos y continuar su análisis
Simulador y depurador trabajando unidos
Usando conjuntamente el depurador "avr_gdb" y el simulador "simulavr", es
posible ejecutar un programa sobre un determinado microcontrolador a través del
simulador mientras el depurador observa la ejecución del código y su repercusión
paso a paso sobre el dispositivo.
7 Almacenamiento del programa sobre el microcontrolador
Grabación de un dispositivo
El término "grabación" representa la acción de trasladar el fichero binario
(ejecutable) con extensión ".hex" obtenido en la fase de ensamblado (o
compilado) al interior del microcontrolador (uC) para su ejecución. La orden
correspondiente es:
#grabapic <ejecutable.hex> (En el PIC) ó |
#grabavr <ejecutable.hex> (En el AVR) | PC (ejecutable.hex) => uC
Opciones del programador
Las aplicaciones de grabación proporcionan otras funciones con las que es
posible el tratamiento del programa almacenado en el microcontrolador.
#leepic <fichero.hex> ó |
#leeavr <fichero.hex> | Programa del uC => PC (dentro de fichero.hex)
#borrapic <dispositivo> ó |
#borravr <dispositivo> | Quita el programa del uC
Proceso de programación
Siempre que el S.O. interactúa con el microcontrolador es necesario seguir un
protocolo de actuación encaminado a garantizar la ejecución satisfactoria del
grabado del chip:
1º Conectar el programador al puerto del computador con el cable adecuado.
2º Preparar el dispositivo para recibir el programa:
3º Grabar el programa.
4º Verificar el correcto resultado de la operación.
Nota: Puedes obtener más información escribiendo, sin parámetros, las órdenes
siguientes.
#grabavr
#grabapic
#leeavr
#leepic
#borravr
#borrapic
8 Archivos fuentes incluidos en la distribución
Todos los ficheros fuente suministrados por microLINUX_vem 2.0 están
localizados en la siguiente jerarquía de directorios:
/usr/fuentes/asm/avr > Código ensamblador para el uC AVR (avr-as)
/pic > Código ensamblador para el uC PIC (gpasm)
/c/ejercicios > Ejercicios de lenguaje C (tcc)
/avr > Código C para el uC AVR (avr-gcc)
/pic > Código C para el uC PIC (picl)
Con ellos podrás utilizar las diferentes aplicaciones de esta distribución.
Nota: Para evitar los problemas asociados al permiso de escritura (el
directorio <usr> se toma directamente del CD-ROM), el usuario deberá colocar
los ficheros con los que trabaje en algún lugar del directorio <home>.
9 Equipamiento de 𝝻controladores utilizado
Programador PICs T20-SE
Entrenador para PICs 16F84
Entrenador para AVRs AT90S8515
9.1 Diseño y fabricación asistidos por computador (CAM / CAD). Esquemas de los entrenador
Grabador PICs
Entrenador PICs + Fuente de alimentación
Entrenador AVRs + Fuente de alimentación