Test de Compiladores para microcontroladores PIC de gama media

La idea de realizar esta prueba a los compiladores más conocidos para microcontroladores PIC de gama media surgió hace unos meses, en el grupo de facebook Electrónica y Microcontroladores, ante la curiosidad por comprobar si el compilador experimental PicPas era tan eficiente como suponíamos. Entendiéndose como más eficaz, el que consiga un tamaño del ejecutable menor y usar menos memoria RAM del microcontrolador.

Cuanto mayor sea esta eficacia del compilador, más sencillo y económico será el microcontrolador necesario para ejecutar el código generado.

Para poder comparar la eficiencia de los distintos compiladores (comerciales y gratuitos) a los que teníamos acceso, se utilizó un código que podríamos denominar «patrón de medida«, mucho más complejo que el usado para manejar la típica secuencia de encendido y apagado de uno o varios diodos LED que a modo de demostración suelen utilizar todos los compiladores.

El programa (patrón de medida) se debe traducir de la manera más literal posible a cada uno de los lenguajes de programación (C, Pascal, BASIC) y los «dialectos» o particularidades específicas de cada compilador, de manera que no influya en la prueba el tipo de algoritmo más o menos eficaz, o la genialidad del programador para codificarlo en un determinado lenguaje. Por eso se trata de un «programa patrón de medida«, y es el compilador evaluado el que deberá, automáticamente, generar el código ejecutable más optimizado o que menos recursos del microcontrolador requiera.

Sigue leyendo

Aprende ensamblador ARM de manera sencilla y VisUAL

Aprender, o al menos conocer, el lenguaje ensamblaje es muy importante si se desea tener una idea muy clara de cómo funciona realmente cualquier sistema informático o de control electrónico programable. VisUAL es un emulador muy indicado para aprender, de una manera muy práctica y sencilla, el lenguaje ensamblador de CPUs diseñadas con arquitectura ARM.

Además de admitir un gran subconjunto de instrucciones ARM, la CPU se emula a través de una serie de animaciones que ayudan a visualizar el flujo de datos en el microprocesador o microcontrolador emulado, incluyendo animaciones muy útiles para comprender algunas de las instrucciones más difíciles de entender, como los cambios y la manipulación de la pila de datos.

Al estar diseñado específicamente para utilizarse como herramienta de enseñanza en el Imperial College London, su Interface Gráfica de Usuario (GUI) es muy amigable, se destacan claramente todos los errores de sintaxis y se muestran ejemplos de la sintaxis correcta.

GUI probando una simple instrucción ADD con dos números.

Además, cuenta con todo aquello que se puede esperar de un emulador, como la ejecución paso a paso de instrucciones, visualización de datos o registros en diferentes ventanas, establecer puntos de interrupción, etc. Incluso advierte de la ejecución de posibles bucles infinitos.

En resumen, una excelente herramienta si deseas iniciarte en el fantástico mundo de los microcontroladores ARM.

 

Principios de Funcionamiento de Sistemas Digitales y su Programación a Bajo Nivel

Se añaden a nuestra Biblioteca dos libros de distribución gratuita con los que comprender los principios en que se basa cualquier sistema digital programable. O qué es realmente lo que mueve nuestro mundo digital al margen de las abstracciones utilizadas por los programadores informáticos, que utilizando lenguajes de alto nivel pueden programarlos sin necesidad de conocer los complejos fundamentos electrónicos con que a bajo nivel se está trabajando.

Un técnico electrónico no es un programador… y debe conocer qué es realmente lo que se mueve a nivel binario.

Pero un técnico electrónico no es un programador, y aunque también programe utilizando lenguajes de alto nivel, su enfoque debe ser muy distinto, y debe conocer qué es realmente lo que se mueve a nivel binario dentro del sistema electrónico digital programable que está diseñando o utilizando.

Sigue leyendo

Aprende a programar microcontroladores en Lenguaje C / C++

La evolución de la electrónica con microcontroladores está haciendo de ellos auténticas computadoras integradas en las que ya no es completamente necesario programar en lenguaje ensamblador para conseguir unos resultados óptimos.

Aunque podemos encontrar distintas soluciones para programar microcontroladores en lenguajes de alto nivel como Pascal, Basic, Prolog, Ada, etc., con el que se pueden programar la inmensa mayoría de microcontroladores es con el lenguaje C, que en algunas ocasiones se ha personalizado para añadir características de manejo de Objetos propios de C++. Un claro ejemplo es la implementación del lenguaje C de las placas Arduino con microcontroladores AVR.

Por lo tanto, hoy en día si deseas programar de manera efectiva y rápida cualquier microcontrolador independientemente de su fabricante o lenguaje ensamblador propio, se hace imprescindible conocer el lenguaje de programación C en general, y más tarde sus particularidades a la hora de programar un determinado microcontrolador, o las particularidades de la herramienta (compilador) con la que programas en lenguaje C ese microcontrolador.

Para iniciarse en la programación C de microcontroladores recomiendo los siguiente libros, completamente gratuitos y de difusión libre. El primero sienta las bases para conocer el lenguaje C estándar. El ANSI C aplicable a cualquier compilador de lenguaje C independiente del sistema en el que vaya a correr el programa. Desde un microcontrolador de 8 bit, hasta una supercomputadora de IBM, las reglas y normas de programación son las mismas y los programas escritos en ANSI C compatibles a nivel de software.

Y el segundo, también de aplicación general, pero un poco más específico para el uso de microcontroladores, ya que trata el manejo de variables a nivel de bits y el uso de macros.

AprendaICEl conocimiento y uso de los conceptos tratados en estos dos libros te abrirá las puertas a la programación básica de cualquier microcontrolador, con prácticamente independencia de su modelo y fabricante.

Sigue leyendo