Uso de MBED desde la linea de comandos (CLI)
Empecé a probar el uso de la plataforma MBED con la placa FRDM-K64F. Hasta ahora usaba la versión online del compilador con una FRDM-KL25Z, que es una (de las primeras en funcionar con MBED). El problema del compilador online no es que haya que estar conectado a la web (lo vengo usando desde hace mucho y nunca tuve problemas de acceso) sino sus limitadas prestaciones como editor de texto. Por ejemplo, no encontré manera de comentar y des-comentar múltiples lineas de código simultaneamente, algo que necesito hacer con frecuencia. Por esto mismo prefiero el editor que uso para el resto de mis actividades: Emacs, y esto lo puedo hacer con el nuevo compilador offline.
Las instrucciones para usar el compilador desde la linea de comandos (mbed-cli) las extraje del video que está más abajo y de la documentación. Sin embargo lo resumo en esta entrada para tener el paso-a-paso como referencia rápida. Por esto mismo, hay mucha información que no está incluida en este post y que pueden encontrar en la documentación de mbed-cli (como por ejemplo las instrucciones de instalación).
Inicializar un nuevo programa
Al inicializar un nuevo programa se crea un directorio con el nombre que le asignamos. Este directorio aparece como hijo de nuestro directorio actual, así que antes de ejecutar el comando hay que posicionarse en la ubicación deseada.
Para MBED OS 5
|
|
Para MBED OS 2
|
|
Mostrar las librerías instaladas
Al inicializarse un programa, como mínimo se importan las librerías de MBED, ya sean las del OS 5 o del OS 2 (son diferentes entre sí). Para verlas:
|
|
Selección de placa y toolchain
Hay que conectar la placa MBED mediante su conector USB OpenSDA (el que se usa para programarla) y ejecutar el siguiente comando, que nos dará información que necesitaremos para seleccionar placa y toolchain:
|
|
El sistema indica que encontró la K64F y cuáles son los toolchains que disponemos para trabajar con ella. Si conecto la placa KL25Z el sistema no la detecta, parece que el sistema sólo es compatible con las placas más nuevas.
Para seleccionar la placa de destino donde correrá nuestro programa:
|
|
Para elegir el toolchain GCC_ARM usamos:
|
|
Si pedimos el estado actual de la configuración veremos lo siguiente (si la ejecución del comando mbed new se realizó desde /home/diego/mis-proyectos):
|
|
Creación de programa
En el directorio raíz del proyecto es necesario crear un archivo llamado main.cpp que contendrá el programa escrito en C++. Por ejemplo, este programa enciende y apaga un LED de la placa (usando OS 2):
|
|
Compilación y ejecución del programa
La compilación se realiza con el siguiente comando:
|
|
Luego hay que copiar el archivo generado por el compilador en la placa MBED. Este archivo (cuyo nombre corresponde al utilizado durante la inicialización del proyecto: "nombre-programa" y cuya extensión es .bin) se encuentra dentro del directorio BUILD/K64F/GCC_ARM. Obviamente este path corresponde a la placa y al toolchain elegidos en un paso anterior. La placa MBED aparece como un disco en el navegador de archivos. En Linux Mint 18 este disco está montado en /media/diego/MBED.
Luego hay que esperar que se produzca la transferencia del archivo .bin hacia la placa MBED (parpadea un LED verde que está junto al conector USB de la placa) y tras algunos segundos (siempre se abre un nuevo navegador de archivos, como cuando conectamos un pendrive, en la ubicación del MBED) podemos resetear la placa para que se inicie la ejecución de nuestro programa. Si cargamos el programa que está copiado en el paso anterior veremos parpadear el led rojo a una frecuencia de 0.5 Hz.
Si modificamos el programa en main.cpp hay que volver a compilarlo, copiar el nombre-programa.bin hacia la placa MBED, esperar que se complete la transferencia y resetearla. Este es el bucle que repetiremos hasta lograr que nuestro programa funcione de la manera deseada.
Resumen
|
|
Finalmente copiar el archivo .bin al MBED, esperar que finalice la transferencia y resetear la placa.