Salida de línea de comandos:
> 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 / descripción:
Espere que se muestre, por supuesto. Más información:
Quizás sepa cuál es el problema aquí. ¿Puedes probar mi rama (con una solución rápida y sucia, solo como prueba de mi pensamiento)?
https://github.com/chenguokai/stlink/tree/stlink-v3_pre
Si estoy en lo cierto, el problema está relacionado con el código no PIC de los nuevos cargadores de flash combinados con una solución sucia en flashloader.c.
¿Puedes probar mi rama (con una solución rápida y sucia, solo como prueba de mi pensamiento)?
Lo construí desde su rama y puedo confirmar que soluciona el problema.
@chenguokai : ¿Qué tenemos aquí?
Como mencioné, los cargadores flash con licencia GPL son PIC (código independiente de la posición), mientras que los nuevos no lo son. Por eso también necesitaba escribir un script de enlace, especificando la dirección base.
Al desmontar los cargadores flash compilados, reconocí que el modo de direccionamiento era relativo a la PC (contador de programa). Pensé que eran tipos de PIC, así que guardé el truco sucio como marco en flashloader.c. A partir de este problema, puedo confirmar que el código de flashloader definitivamente no es PIC, por lo que los dos nops deben agregarse al código de flashloader en lugar de agregarse antes de un binario.
Bien, entonces puede entregar un PR para el lanzamiento de junio, pero asegúrese de bifurcar develop
lugar de stlink-v3_pre
que eliminé después del último PR. No sé si esto puede causar efectos secundarios.
@ grzegorz-kraszewski Por favor verifique si mi PR soluciona este problema :-)
@ grzegorz-kraszewski Por favor verifique si mi PR soluciona este problema :-)
No estoy seguro, ya que desencadena otro:
> 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 un tema diferente. Abra un nuevo ticket para eso.
No estoy seguro, ya que desencadena otro:
¿Ayuda un relanzamiento o desenchufar y enchufar?
Comentario más útil
Lo construí desde su rama y puedo confirmar que soluciona el problema.