Actualmente estoy usando Keil para desarrollar una placa de descubrimiento STM32. Mi proyecto está casi terminado y me gustaría pasar a un entorno de construcción basado en Linux. He estado usando la herramienta de flasheo preconfigurada y los controladores STLink para que Windows flashee la placa, y obtuve keil para exportar un archivo bin, que logré flashear en mi máquina Linux usando qSTLink2 . Hasta aquí todo bien.
Ahora estoy atascado en mover el proceso de construcción de todo el proyecto. Específicamente:
¿Cómo porto mi .uvproj a un archivo MAKE, mientras tomo en cuenta cosas como el archivo de inicio 'startup_stm32l1xx_md.s'?
Respuestas:
Lo tengo hecho. Pensé que compartiría mis resultados para que otros puedan usarlo. Gracias por su tiempo a todos.
Utilicé esta cadena de herramientas ARM para construir mi proyecto, y la biblioteca de texane / stlink , que viene con la
./st-flash
herramienta, para actualizar el binario a mi STM32L1. Si bien el texane / stlink viene con GDB, descubrí que podía realizar el proceso de construcción + flasheo sin él.Mi Makefile terminó luciendo así. No es muy bonito ni abstracto, pero hace el trabajo.
En el cual:
arm-none-eabi-gcc
La cadena de herramientas ARM
-T stm32l1xx.ld
El documento de enlace
-mthumb -mcpu=cortex-m3
Dile a GCC que esto es para un M3
-D STM32L1XX_MD -D USE_STDPERIPH_DRIVER
Define para el controlador periférico estándar
startup_stm32l1xx_md.s
Documento de inicio orientado a GCC.
system_stm32l1xx.c main.c [ sources ]
Lista de mis archivos fuente
-lm
Para
Math.h
( L ib M ath)--specs=nosys.specs
No use llamadas de sistema como
_exit
.-o Project.elf
Nombre de salida
fuente
stm32l1xx.ld
viene el archivo?Hay una cadena de herramientas Gnu ARM (arm-none-eabi), y supuestamente openOCD funciona con gdb (aunque no he podido hacer que eso suceda bajo Win7 - openOCD se conecta a una placa STM32F4disco OK, pero gdb tiene problemas para conectarse a openOCD )
Investiga un poco por aquí y encontrarás enlaces a la cadena de herramientas, openOCD y proyectos de muestra que incluyen la fuente de inicio.
fuente