Este es un cargador de arranque STM32F1XX/STM32F4XX personalizado que permite intermitir binarios de firmware a través de USB, utilizando protocolos DFU o HID-flash. La intención -ambiciosa detrás del proyecto es implementar las complejidades de muchos más MCU STM32 en un solo proyecto que se puede descargar, configurar, compilarse y parpadear fácilmente.
Faltar un nuevo firmware con una interacción mínima con la placa física es realmente conveniente en algunos casos. En mi caso, estaba parpadeando la placa BTT GTR 1.0 de mi impresora 3D a través de mis pulpos en la presión de un botón (dos en realidad, restablecer + botón de codificador LCD), que ahora puedo activar a través del GPIO de RPI y flash a voluntad, sin ninguna interacción manual.
Este gestor de arranque es un trabajo en progreso, lo que significa que no se ha probado ampliamente, y todavía hay mucho que considerar en la compatibilidad de hardware. Considere esto como algo experimental, hasta que se haya asegurado de que todos los aspectos funcionen en su tablero específico.
El proyecto se inspiró en Serasidis/STM32_HID_BOOTLOADER (que se origina en Bootsector/STM32-HID-BootLoader) y conserva la compatibilidad con la herramienta HID-flash.
El proyecto está adaptado a Platformio (el proyecto debe construir y cargar tal como está, siempre que tenga un dispositivo ST-Link/V2 conectado). Utiliza las bibliotecas de marco STM32Cube originales en lugar de contener partes ligeramente modificadas de ella. El protocolo DFU se implementa y se prueba en ambas plataformas STM32F1XX/4XX. Por el momento, la compatibilidad con la versión anterior de Hid-Flash.exe se mantiene solo en la compilación STM32F4XX. Las fuentes de HID-Flash Tool no están incluidas en el proyecto.
Antes de intentar esto, asegúrese de tener una copia del cargador de arranque original de su tablero, que ha vuelto a mostrar con éxito al tablero sin problemas .
Personalizar el comportamiento del cargador de arranque se realiza modificando el archivo Configuration.h. Vea los comentarios del archivo para más detalles.
Use un dispositivo compatible con ST-Link, conectado correctamente a su placa y a la PC. Use el comando de carga de Platformio para instalar. Restablecer la placa con el pin 0 configurado en 3.3V también debería funcionar, pero esto depende de su tablero y MCU (consulte el wiki para obtener más información sobre el tema).
Enable the configured trigger and reset the board (in case of pin trigger, keep the pin enabled while resetting and until the USB device appears at the host. Depneding on which protocol you have enabled (DFU or HID), use dfu-util.exe or hid-flash.exe cmd line tool to upload a firmware binary file manually, or if your firmware project is a PlatformIO project, simply configure dfu or hid as Su upload-protocol preferido en la sección ENV del archivo Platformio.ini de su firmware, como en el siguiente ejemplo:
#
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
#
[env:BIGTREE_GTR_V1_0]
extends = stm32_variant
board = marlin_BigTree_GTR_v1
board_build.offset = 0x8000
build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
upload_protocol = dfu
Visite el wiki para obtener más información sobre el flasheo y el uso.
Más desencadenantes, más métodos intermitentes, más MCU / tableros STM32 para soportar.
Hasta ahora, el proyecto ha sido probado en los siguientes tableros:
STM32F4XX:
STM32F1XX: