Tengo una placa de descubrimiento STM32 y me gustaría poder programarla en Linux.
¿Cuál es la forma más fácil de hacer esto?
linux
stm32
development
development-tools
Gordon Williams
fuente
fuente
Respuestas:
Una manera fácil de programar y depurar la placa STM32 Discovery (o cualquier STM32 que use un programador ST-Link) es usar el proyecto 'stlink' https://github.com/texane/stlink (sin embargo, OpenOCD también parece popular)
Las placas ST Nucleo también aparecen como un dispositivo flash USB, por lo que ni siquiera es necesario
stlink
, simplemente copie el archivo en ellas.Hay algunas páginas buenas sobre cómo desarrollar para el descubrimiento de STM32 en Linux, como http://gpio.kaltpost.de/?page_id=131 y http://torrentula.to.funpic.de/2012/03/22/ configuración-the-stm32f4-arm-development-toolchain / y http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Sin embargo, el último enlace me pareció el más útil. Muestra cómo construir los proyectos STM32 de ST tal como están: el único cambio es agregar su Makefile, que parece una solución perfecta.
En versiones recientes de Ubuntu, hay un paquete que puede instalar que contiene un compilador ARM:
Tenga en cuenta que los procesadores son todos un poco diferentes. STM32F0..4 necesitará diferentes indicadores de compilación, y la secuencia de comandos del enlazador será ligeramente diferente para cada uno (aunque en realidad solo debido a los cambios en el tamaño de RAM y Flash).
Editar: si desea comenzar realmente rápido , también puede consultar http://www.espruino.com . Es un intérprete de JavaScript que se ejecuta en el STM32, por lo que una vez que haya instalado 'stlink' para poder flashear en la placa, simplemente puede descargar una imagen de ese sitio, encenderla y luego conectarse con una aplicación de terminal y comenzar a programar.
fuente
Si le gustan más los editores de texto y los Makefiles en lugar de usar una GUI, puede hacer lo siguiente:
Lleve su proyecto a la pizarra. Cualquiera de uso
Codifique en un editor de texto y use herramientas de línea de comandos. Este tutorial proporcionará muchos consejos.
Disfrutar
fuente
Eclipse , GCC y OpenOCD es una cadena de herramientas. Es recomendado por EMCU-IT y hay información adicional aquí . Esas páginas también recomiendan usar un RTOS como FreeRTOS.org , pero eso depende de usted.
Y para obtener ayuda con la compilación de los ejemplos de STM32 en Linux, vaya aquí . Ese enlace apunta a un archivo MAKE para los ejemplos que se pueden invocar con
También se documentan un par de correcciones de código menores, pero la mayoría del proyecto debería funcionar con
fuente
He tenido éxito con https://github.com/JorgeAparicio/bareCortexM (ver también las publicaciones de blog vinculadas). Estoy convencido de que puedo simplemente pasar un paso por el código o explorar la memoria del dispositivo en lugar de insertar declaraciones de depuración en mi código o adivinar lo que está sucediendo dentro del chip.
El proyecto bareCortexM es una plantilla de Eclipse para desarrollar con la serie Cortex M, especialmente STM32, en C ++ sin un sistema operativo. Está configurado para usar openocd, gcc y tiene scripts para flashear y depurar en varios objetivos, incluidos algunos de los paneles de descubrimiento. Siguiendo las instrucciones e instalando los complementos Eclipse recomendados, pude usar mi STM32VLDISCOVERY en Ubuntu.
Según lo recomendado, combiné la plantilla de eclipse con la biblioteca de plantillas C ++ libstm32pp del mismo autor para el hardware STM32. libstm32pp proporciona un reemplazo sorprendentemente completo para CMSIS y los conductores STM32 menudo criticados con un modelo de programación que le permite decir cosas como
PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
yPINB::setLow()
, oPINB::setHigh()
todos en línea sobre todo compilado debido a las plantillas de C ++. La configuración es muy agradable.fuente
Tal vez sería útil para alguien: mi breve artículo (en ruso) y un proyecto simple . Todo en Linux y sin cosas innecesarias como eclipse.
Las bibliotecas se tomaron del sitio web de ST, makefile, de uno de los muchos ejemplos de GPL en internet.
fuente
Aquí hay un proyecto de plantilla pequeño pero innovador para el inicio rápido usando la placa de descubrimiento STM32F0 bajo Linux o cualquier otro sistema operativo:
https://github.com/dobromyslov/stm32f0-chibios-template
Tenga en cuenta que el proyecto utiliza ChibiOS, un sistema operativo en tiempo real gratuito y de código abierto, por lo que no es exactamente una implementación básica desde cero.
fuente
Uso vim y arm-none-eabi-gcc junto con todas las herramientas habituales de desarrollo de Linux. Linux es, en mi opinión, un entorno de desarrollo superior para el trabajo integrado con diferencia. Para la depuración uso stlink y arm-none-eabi-gdb.
fuente
Considere plataforma . Si se siente cómodo con la línea de comandos, encontrará que la plataforma facilita considerablemente el proceso de desarrollo.
pio init
se puede usar para configurar un proyecto.pio run
aprovecha la cadena de herramientas para compilar.pio run --target upload
envía el código al dispositivo. Platformio se encarga de descargar los componentes de la cadena de herramientas, las bibliotecas, etc., según sea necesario.fuente