STM32F3 Discovery + GNU ARM plugin + OpenOCD - no puede cargar el binario en la placa

5

Estoy usando el complemento GNU ARM para Eclipse con Open OCD como depurador. Esto está en Windows 10 x64. El problema al que me enfrento es el siguiente error al intentar depurar o ejecutar el programa de ejemplo:

  

Error en la secuencia de lanzamiento final
   Error al ejecutar el comando MI: cargar C: \ Development \ stm32-test \ Debug \ stm32-test.elf
  Mensaje de error del back-end del depurador:
  Carga fallada
  Error al ejecutar el comando MI: cargar C: \ Development \ stm32-test \ Debug \ stm32-test.elf
  Mensaje de error del back-end del depurador:
  Carga fallada
  Falló la carga

Hay varios tipos de plantillas de proyecto STM32 que ofrece el complemento ARM. En particular, está el "proyecto STM32Fxxx C / C ++", y funciona sin problemas. Pero está incluido con la versión anterior de la biblioteca STM32. Quería usar el último STM32F3Cube, así que usé la otra plantilla, "Hello World ARM Cortex-M C / C ++ project", según la recomendación de este artículo . Está diseñado para usarse con el STM32F3Cube, y es el que no puedo cargar en el tablero.

Por favor, dígame qué información adicional se necesita para tratar este problema, o cómo puedo recopilar registros más detallados, etc.

P. S. He comparado los ajustes de configuración de depuración entre los proyectos en funcionamiento y los que no funcionan, y no he encontrado ninguna diferencia. Mismo archivo .cfg, junto con todo lo demás. ¿Se está rechazando mi propia cuenta porque hay algo malo en ello?

    
pregunta Violet Giraffe

1 respuesta

6

A partir del mensaje de error, parece que el depurador no puede localizar dónde comienza Flash, por lo que no puede cargar el archivo.

En la plantilla F4 HAL Eclipse, esta dirección de origen Flash está configurada correctamente para un STM32, pero debido a que está utilizando un proyecto general de Cortex-M, por lo que esta dirección no es correcta para un STM.

Este paso se describe en el artículo que ha mencionado. Desde el artículo :

  

Necesitamos configurar cómo se asigna la aplicación en la memoria de MCU.   Este trabajo es realizado por el editor de enlaces (ld), que utiliza el   Tres archivos .ld dentro de la carpeta / ldscripts Eclipse. El archivo que somos   Interesado en es mem.ld, y necesitamos cambiar el origen de FLASH   dirección de 0x00000000 a 0x08000000, como se muestra a continuación:

...
  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K
...

Este valor se puede obtener de la hoja de datos. Aquí está la parte relevante:

    
respondido por el Bence Kaulics

Lea otras preguntas en las etiquetas