Mover la programación integrada de Keil a Linux

6

Actualmente estoy usando Keil para desarrollar un tablero 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 actualización preconfigurada y los controladores STLink para Windows para actualizar la placa, y pude hacer un esfuerzo para exportar un archivo bin, que logré actualizar en mi máquina Linux usando el código qSTLink2 . Hasta ahora tan bueno.

Ahora estoy atascado en mover el proceso de construcción del proyecto completo. Específicamente:

¿Cómo puedo trasladar mi .uvproj a un archivo make, mientras se toman en cuenta el archivo de inicio 'startup_stm32l1xx_md.s'?

    
pregunta Lg102

2 respuestas

8

Lo tengo hecho. Pensé que compartiría mis resultados para que otros puedan usarlos. Gracias por su tiempo, todos.

Utilicé esta cadena de herramientas ARM para compilar mi proyecto y texane / stlink , que viene con la herramienta ./st-flash , para actualizar el binario a mi STM32L1. Mientras que texane / stlink viene con GDB, encontré que podría hacer que el proceso de creación + flasheo se realice sin él.

Mi Makefile terminó pareciéndose a esto. No es muy bonito ni abstracto, pero hace el trabajo.

all:
    arm-none-eabi-gcc -T stm32l1xx.ld -mthumb -mcpu=cortex-m3 -D STM32L1XX_MD -D USE_STDPERIPH_DRIVER startup_stm32l1xx_md.s system_stm32l1xx.c main.c [ sources ] -lm --specs=nosys.specs -o Project.elf

En el que:

  • arm-none-eabi-gcc
    La cadena de herramientas ARM
  • -T stm32l1xx.ld
    El documento enlazador
  • -mthumb -mcpu=cortex-m3
    Dígale a GCC que esto es para un M3
  • -D STM32L1XX_MD -D USE_STDPERIPH_DRIVER
    Definiciones 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 de origen
  • -lm
    Para Math.h ( L ib M ath)
  • --specs=nosys.specs
    No uses llamadas de sistema como _exit .
  • -o Project.elf
    Nombre de salida
respondido por el Lg102
2

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 conectando a openOCD).

Investigue un poco aquí y encontrará enlaces a la cadena de herramientas, openOCD y proyectos de ejemplo que incluyen fuente de inicio.

    
respondido por el markt

Lea otras preguntas en las etiquetas