domingo, 14 de septiembre de 2014

8051 : Atmel 89S51 , programación en C

El lenguaje de alto nivel C es sin lugar a dudas el mas utilizado en la progamación de microcontroladores.
En el mercado existen muchos compiladores C para la familia 8051, uno de ellos es SDCC .
Para poder crear un programa en C tenemos que utilizar un editor o un IDE que puedan ser parametrizados para el compilador.

Una opción es el editor para programación PSPAD.
La parametrización de PSPAD es muy sencilla, debemos configurar la pestaña:
   Opciones -> Configurar Resaltadores :




En la imagen podemos ver que se modifica la pestaña Compilador.
El último campo (Ejecutar después de compilar) permite generar el archivo binario hex que va a ser cargado en el micro, ya que el compilador por defecto crea un archivo binario con extensión  ihx

Una vez creado el programa debemos compilarlo mediante el botón mostrado en la figura:


El resultado de la compilación se muestra en la sección inferior de la pantalla. Una compilación exitosa genera un Exit code = 0


El archivo binario .hex se crea en la misma carpeta donde tenemos el programa fuente.
A continuación un ejemplo que permite generar los primeros 47 números de fibonacci y los muestra por el puerto serial:


Una vez creado el archivo binario .hex debemos grabarlo en la memoria flash del micro mediante un programador (en nuestro caso utilizamos un Arduino ATmega644 en modo programador SPI).

Es importante tener en cuenta que estamos trabajando con la memoria interna del micro, por lo que sólo disponemos de 4KB de flash y 256B de RAM. Esto impone restricciones importantes en cuanto a los programas que podemos ejecutar. De hecho no  es factible cargar librerías de punto flotante ya que los requerimientos exceden la memoria flash disponible. En el ejemplo el archivo binario creado tiene un tamaño de 2129B y sólo utilizamos la libreria <stdio.h>

No hay comentarios:

Publicar un comentario