AVISO: Por favor, leia e siga as instruções em # 906 antes de enviar um tíquete. Portanto, certifique-se de que todos os campos estejam preenchidos.
[x] Fiz um grande esforço para evitar a criação de problemas duplicados ou quase semelhantes
Programador / tipo de placa: embutido
st-util
Esperado / descrição:
Meu problema surgiu ao seguir o tutorial para um script de vinculador mínimo em: https://vivonomicon.com/2018/04/02/bare-metal-stm32-programming-part-1-hello-arm/
O código-fonte para isso também pode ser encontrado em https://github.com/WRansohoff/STM32F0_minimal
O código compila etc sem problemas.
Em seguida, corro st-util
e me conecto ao tabuleiro usando arm-none-eabi-gdb main.elf
e target extended-remote :4242
Então eu carrego o programa usando load main.elf
.
É aqui que o comportamento de v1.5.0 e v1.6.0 diverge.
Na v.1.5.0, o programa pode ser percorrido usando si
, e posso entrar no loop e ver r0
sendo incrementado.
Na v.1.6.0, usar si
faz com que o contador do programa salte imediatamente para 0xfffffffe
e r0
não seja incrementado.
No entanto, às vezes r7
é definido com êxito como 0xdeadbeef
.
Eu também fiz isso usando o OpenOCD 0.10.0 e pude percorrê-lo sem problemas.
Devo observar que construí v1.5.0 da fonte usando libusb 1.0.23 e aplicando o patch # 704.
Por favor, deixe-me saber se você precisar de mais informações.
De que tipo de hardware é o seu programador? Descreva-o com mais precisão para completar o conjunto de informações básicas.
As versões posteriores do conjunto de ferramentas funcionam (novamente)?
Estou usando os programadores integrados para as placas Nucleo e Discovery, que acredito serem ST-Link v2, e um programador USB ST-Link v2 para a pílula azul.
Não funciona na v1.6.1 - esta é a versão que eu estava usando no macOS, enquanto no openSUSE eu estava na v1.6.0.
@gcohara Você poderia tentar develop
branch? Eu testei em stm32f07 e está funcionando.
Experimentei no branch develop
e posso confirmar que está funcionando!
Desculpe, eu realmente deveria ter feito isso de qualquer maneira.
Não feche os tíquetes abertos, pois isso vai contra as tarefas regulares de manutenção e rastreamento. Os tickets resolvidos são fechados automaticamente pelo sistema de rastreamento de problemas.