Fragmentos de STM32L0 con la cadena de herramientas GCC ARM

1

Actualmente trato de usar la serie de microcontroladores STM32L0. Descubrí que ST ofrece una colección de programas de C de bajo nivel llamada STM32SnippetsL0 también, en paralelo con su compleja API HAL basada en STM32CubeMX. Desafortunadamente, no puedo usar los códigos bajo GNU / Linux porque solo admite cadenas de herramientas EWARM y MDK-ARM. ¿Existe alguna posibilidad de ejecutar este código con la GCC ARM Embedded ?

    
pregunta kaliczp

1 respuesta

5

Después de un largo experimento, puedo decir que es posible compilar los STM32Snippets con la cadena de herramientas integrada GCC ARM. Los Snippets contienen los archivos necesarios, excepto el archivo enlazador. Usé un archivo enlazador copiado de STM32CubeMX (plantilla SW4STM32) pero creo que también se pueden usar otros scripts.

Es necesario copiar dos archivos de la carpeta de plantillas de Fragmentos (Controladores / CMSIS / Dispositivo / ST / STM32L0xx / Fuente / Plantillas). El primero es system_stm32l0xx.c y el segundo es el archivo de ensamblaje de inicio apropiado de la subcarpeta gcc. (Sí, parece ser un soporte parcial para gcc). Utilicé startup_stm32l053xx.s porque uso la placa Nucleo. Si los Fragmentos descargados se extraen a los fragmentos de carpeta y arm-none-eabi-gcc está en su ruta, puede usar el siguiente código:

arm-none-eabi-gcc -DSTM32L053xx -Wall -g -mthumb -mcpu=cortex-m0plus -march=armv6-m -mlittle-endian -Isnippets/Drivers/CMSIS/Include -Isnippets/Drivers/CMSIS/Device/ST/STM32L0xx/Include -Wl,--gc-sections,-Map=main.map -Tstm32l053xx.ld -L. system_stm32l0xx.c startup_stm32l053xx.s main.c -o main.elf

Finalmente se produce un contenedor para cargar en Nucleo.

arm-none-eabi-objcopy -O binary main.elf main.bin
    
respondido por el kaliczp

Lea otras preguntas en las etiquetas