Actualmente trato de usar la serie de microcontroladores STM32L0. Descubrí que ST también ofrece una colección de programas C de bajo nivel llamada STM32SnippetsL0 , 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. ¿Hay alguna posibilidad de ejecutar este código con la cadena de herramientas GCC ARM Embedded ?
Después de un largo experimento, puedo decir que es posible compilar STM32Snippets con la cadena de herramientas GCC ARM Embedded. Los Snippets contienen los archivos necesarios excepto el archivo del enlazador. Usé un archivo de enlace copiado de STM32CubeMX (plantilla SW4STM32), pero creo que también se pueden usar otras secuencias de comandos.
Es necesario copiar dos archivos de la carpeta de plantillas Snippets (Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates). El primero es system_stm32l0xx.c y el segundo el archivo de ensamblaje de inicio adecuado de la subcarpeta gcc. (Sí, parece que es compatible parcialmente con gcc). Usé startup_stm32l053xx.s porque uso la placa Nucleo. Si los fragmentos descargados se extraen a los fragmentos de la 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 bin para subir a Núcleo.
arm-none-eabi-objcopy -O binary main.elf main.bin
viejo contador de tiempo
kaliczp
viejo contador de tiempo