AVISO: Lea y siga las instrucciones en el n. ° 906 antes de enviar un ticket. Por lo tanto, asegúrese de completar todos los campos.
[x] Hice un gran esfuerzo para evitar crear un problema duplicado o casi similar
Programador / tipo de placa: incorporado
st-util
Esperado / descripción:
Mi problema surgió mientras seguía el tutorial para un script de enlace mínimo en: https://vivonomicon.com/2018/04/02/bare-metal-stm32-programming-part-1-hello-arm/
El código fuente para esto también se puede encontrar en https://github.com/WRansohoff/STM32F0_minimal
El código se compila, etc. sin problemas.
Luego ejecuto st-util
y me conecto a la placa usando arm-none-eabi-gdb main.elf
y target extended-remote :4242
Luego cargo el programa usando load main.elf
.
Aquí es donde el comportamiento de v1.5.0 y v1.6.0 divergen.
En la versión 1.5.0, el programa se puede recorrer usando si
, y puedo entrar en el ciclo y ver que r0
se incrementa.
En v.1.6.0, usar si
hace que el contador del programa salte inmediatamente a 0xfffffffe
, y el r0
no se incrementa.
Sin embargo, a veces r7
se establece correctamente en 0xdeadbeef
.
También hice esto usando OpenOCD 0.10.0, y pude recorrerlo bien.
Debo señalar que construí v1.5.0 desde la fuente usando libusb 1.0.23 y aplicando el parche # 704.
Por favor avíseme si necesita más información.
¿De qué tipo de hardware es su programador? Descríbalo con más precisión para completar el conjunto de información básica.
¿Funcionan (de nuevo) las versiones posteriores del conjunto de herramientas?
Estoy usando los programadores incorporados para las placas Nucleo y Discovery, que creo que son ST-Link v2, y un programador USB ST-Link v2 para la pastilla azul.
No funciona en v1.6.1: esta es la versión que estaba usando en macOS, mientras que en openSUSE estaba en v1.6.0.
@gcohara ¿Podrías probar la rama develop
? Lo probé en stm32f07 y funciona.
¡Lo probé en la rama develop
y puedo confirmar que está funcionando!
Lo siento, debería haberlo hecho de todos modos.
No cierre los tickets abiertos, ya que esto va en contra de las tareas de mantenimiento y seguimiento regulares. El sistema de seguimiento de incidencias cierra automáticamente los tickets resueltos.