Programación de la placa

Guía sobre cómo comenzar a crear, compilar y cargar un nuevo firmware

Imagen: @iblancasa

Cómo conectar la placa

La placa tiene dos modos: un modo "programación" y otro "ejecución". Cuando quieras progamarla, deberás conectarla en el primero mientras que, si deseas que se ejecute el firmware que hayas subido, deberás conectarla como el segundo. Para conectar en modo "ejecución", solo tendrás que conectar la placa a un puerto USB. Para utilizarla en modo "programación", tendrás que conectarla mientras (en la placa) pulsas el botón rectangular que hay más próximo a la conexión USB

Creando y compilando un fichero

La placa se programa en C++. Puedes ver algunos ejemplos en el perfil de Alberto Piganti, creador de la placa.

Para programar, necesitarás primero una cuenta en MBED. Una vez que te hayas registrado, ve al compilador. En la parte superior derecha (o al crear un nuevo proyecto) se nos solicitará el modelo de placa que estamos utilizando. Hay que indicar "MBED LPC11U24".

Una vez hayas terminado de programar podrás pulsar "Compile" en la barra de herramientas superior. Si no hay errores de programación, se te descargará un fichero cuya extensión es ".bin" (es el firmware) que instalaremos en nuestro dispositivo.

Instalando un nuevo firmware a la placa

Este paso es importante en función del sistema operativo en el que te encuentres:

  • MAC ó Windows: tienes disponibles los cargadores en una release del repositorio: al abrir la ventana, tendrás un dibujo de la placa (que si está bien montada en el sistema, aparecerá coloreada). Arrastra el nuevo firmware sobre la placa y éste será cargado.
  • Linux: cuando esta página es publicada, el cargador no funciona demasiado bien. Puedes cargar tu firmware con este cargador escrito en Bash. Solo tendrás que darle permisos de ejecución y ponerlo en marcha, pasando como argumento el nombre de tu firmware (que debe estar) en la misma carpeta que el script. chmod +x miniblip_loader.sh; ./miniblip_loader firmware.bin

Pinout

Compilación offline

JJ. Merelo documentó en el repositorio cómo compilar de forma local.

Instálate el entorno de programación siguiendo estas instrucciones

Te puedes descargar el programa completo del entorno pulsando con el botón de la derecha y dándole a "Export program". Descomprime el ".zip" que te bajes en un fichero. Edita el "Makefile" y edita esta línea para poner

GCC_BIN = /usr/bin/

que es donde se instala el compilador.

Puede que te dé algún problema del estilo:

/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: colorines.elf section `.text' will not fit in region `FLASH'
/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: region `FLASH' overflowed by 208 bytes

En cuyo caso tendrás que recortar el tamaño del fichero, quitando variables e info de depuración, por ejemplo.

Si no te da ningún problema, te generará un .bin. Ya casi estás. Tendrás que pillarte el programa crcset.c y compilarlo. Este programa pone los bits de comprobación correctamente, para evitar el error que sale al final:

***** ***** You must modify vector checksum value in *.bin and *.hex files. *****

Con eso, ya haces:

./crcset nombre-del-programa.bin

¡Y ya estás listo!