viernes, 26 de junio de 2009

Programando pic's desde linux. (IDE)

Entrando a tema...

El corazón de Pikdev y otros como Piklab, con las herramientas que proporciona GPutils que vimos el post pasado. Por ello veremos como ensamblar desde la línea de comandos.

Abrimos nuestra terminal y nos vamos hasta donde tengamos nuestro archivo '.asm' y tecleamos:

[Sugizo@old practicas]$ gpasm -L -o "/media/disk/escuela/Microcomputadoras/practicas/test01b.hex" -w 2 -I "/usr/share/gputils/header" -p p16f877 -a inhx8m -r hex "/media/disk/escuela/Microcomputadoras/practicas/test01b.asm"

Con ello generaremos el archivo .hex, .cod y .lts que usaremos para GPSim.


Pero si lo que queremos es evitar la terminal, siempre existe el entorno gráfico y sencillo de una IDE como Pikdev.

abrimos nuestro .asm seleccionamos el tipo de pic que deseamos usar y le damos F5 y nos hace lo anterior en un solo click.


y así tenemos los mismos archivos con menos esfuerzo. Hay que aclarar que una de las cosas que debemos cuidar es la sintaxis, ya que gpasm es muy estricto en cuanto a declaraciones. Un error es include, MPLab la reconoce tanto en mayusculas como en minusculas, mientras que gpasm sólo en minusculas.

Ejemplo:

__CONFIG _LVP_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC & _BODEN_OFF & _WDT_OFF
list p=pic16f877
include <p16f877.inc>

Uno siempre se siente realizado cuando se ensambla sin ploblemas... Pero eso no indica que haga lo que debiera y seguramente nos dara dolores de cabeza al ver que pasa nada y lo mismo cuando lo grabamos en el chip. Pero para ello esta GPSim...

Para el programador, solo nos interesa el .hex. Por lo que tomamos como basura todo lo demás. Pero ¿Cómo depuramos?

Desde la terminal tecleamos

[Sugizo@old practicas]$ gpsim -s archivo.cod

Esto nos abre un entorno gráfico simple, aburrido y que parece poco eficiente. Pero su elegancia radica en su simpleza.


En el cual podemos tener todo lo necesario en ventanas independientes y que podemos acomodar en todo el escritorio para poder seguir cada paso de nuestro programa y ver en donde nuestra lógica falla.

Desde esta ventana podemos colocar nuestros breakpoints y seguir línea a línea lo que pasa en nuestro código y lo que tenemos en nuestras librerias auxiliares.


Y en esta esquina tenemos a la maravillosa ventana medidora!! El StopWatch que generosamente nos medirá la cantidad de ciclos y tiempo que tarda una instrucción en ejecutarse.

Y aquí lo tenemos en funcionamiento

Entre sus herramientas tenemos los registros de la RAM como de la memoria EEPROM.


El programa de memoria.

Y una placa gráfica de nuestro integrado donde vienen los puertos y los bits de configuración.


Como dicen: He aquí, todo para el programador. Nos veremos en el siguiente post para seguir descubriendo los horrores de dedo y más código para poder hacer de un pic, una útil herramienta.