Saída de linha de comando:
> st-flash write dioda.bin 0x08000000
st-flash 1.6.0-311-ga98b094
2020-05-17T17:59:37 INFO common.c: F0xx: 8 KiB SRAM, 64 KiB flash in at least 1 KiB pages.
file dioda.bin md5 checksum: d3ad84699b33f431b86a77e53b16b11a, stlink checksum: 0x0000080b
2020-05-17T17:59:37 INFO common.c: Attempting to write 56 (0x38) bytes to stm32 address: 134217728 (0x8000000)
2020-05-17T17:59:37 INFO common.c: Flash page at addr: 0x08000000 erased
2020-05-17T17:59:37 INFO common.c: Finished erasing 1 pages of 1024 (0x400) bytes
2020-05-17T17:59:37 INFO common.c: Starting Flash write for VL/F0/F3/F1_XL core id
2020-05-17T17:59:37 INFO flash_loader.c: Successfully loaded flash loader in sram
2020-05-17T17:59:37 ERROR flash_loader.c: flash loader run error
2020-05-17T17:59:37 ERROR common.c: stlink_flash_loader_run(0x8000000) failed! == -1
stlink_fwrite_flash() == -1
Esperado / descrição:
Espere que seja exibido, é claro. Mais informações:
Talvez eu saiba qual é o problema aqui. Você pode experimentar meu ramo (com uma correção rápida e suja, apenas como uma prova do meu pensamento)?
https://github.com/chenguokai/stlink/tree/stlink-v3_pre
Se eu estiver certo, o problema está relacionado ao código não-PIC de novos flashloaders combinado com uma correção suja no flashloader.c.
Você pode experimentar meu ramo (com uma correção rápida e suja, apenas como uma prova do meu pensamento)?
Construí a partir do seu branch e posso confirmar, corrige o problema.
@chenguokai : O que temos aqui?
Como mencionei, os flashloaders licenciados pela GPL são PIC (código independente de posição), enquanto os novos não são. É também por isso que precisei escrever um script de vinculador, especificando o endereço base.
Ao desmontar os flashloaders compilados, reconheci que o modo de endereçamento era relativo ao PC (contador de programa). Eu pensei que eles eram tipos de PIC, então mantive o hack sujo como um marco no flashloader.c. A partir desse problema, posso confirmar que o código do flashloader definitivamente não é PIC, então os dois nops devem ser adicionados ao código do flashloader em vez de anexados antes de um binário.
Ok, então, você pode entregar um PR para o lançamento de junho, mas certifique-se de ramificar develop
vez de stlink-v3_pre
que eu apaguei após o último PR. Não sei se isso pode causar efeitos colaterais.
@ grzegorz-kraszewski Por favor, verifique se meu PR corrige este problema :-)
@ grzegorz-kraszewski Por favor, verifique se meu PR corrige este problema :-)
Não tenho certeza, pois aciona outro:
> st-flash write ~/dioda_f030.bin 0x08000000
st-flash 1.6.0-314-g273e798
2020-05-18T10:59:30 WARN common.c: unknown chip id! 0x374b
Failed to connect to target
@ grzegorz-kraszewski: Parece um tópico diferente. Por favor, abra um novo tíquete para isso.
Não tenho certeza, pois aciona outro:
Reiniciar ou desconectar e conectar ajuda?
Comentários muito úteis
Construí a partir do seu branch e posso confirmar, corrige o problema.