Il s'agit d'un chargeur de démarrage STM32F1XX / STM32F4XX personnalisé qui permet de clignoter des binaires de firmware via USB, à l'aide de protocoles DFU ou HID-Flash. L'intention - ambitieuse derrière le projet est d'importer les subtilités de nombreux MCS STM32 dans un seul projet qui peut être facilement téléchargé, configuré, compilé et flashé.
Le clignotement de nouveau firmware avec une interaction minimale avec la carte physique est vraiment pratique dans certains cas. Dans mon cas, il clignotait la carte BTT GTR 1.0 de mon imprimante 3D via mon octopi à la pression d'un bouton (deux en fait, réinitialiser le bouton Encodeur LCD), que je peux maintenant déclencher via GPIO et Flash à volonté de RPI, sans aucune interaction manuelle.
Ce chargeur de démarrage est un travail en cours, ce qui signifie qu'il n'a pas été largement testé, et il y a encore beaucoup à considérer sur la compatibilité matérielle. Veuillez considérer cela comme quelque chose d'expérimental, jusqu'à ce que vous vous assuriez que tous les aspects fonctionnent sur votre tableau spécifique.
Le projet a été inspiré par Serasidis / STM32_HID_BOOTLOADER (qui provient de BootEctor / STM32-HID-Bootloader) et conserve la compatibilité avec l'outil HID-Flash.
Le projet est adapté à PlatformIo (le projet doit construire et télécharger tel quel, à condition que vous ayez un périphérique ST-Link / V2 connecté). Il utilise les bibliothèques de framework STM32Cube d'origine au lieu d'en contenir des parties légèrement modifiées. Le protocole DFU est implémenté et testé sur les deux plates-formes STM32F1XX / 4XX. Pour le moment, la compatibilité avec l'ancienne version de Hid-Flash.exe est maintenue uniquement dans la compilation STM32F4XX. Les sources de l'outil Hid-Flash ne sont pas incluses dans le projet.
Avant d'essayer cela, soyez absolument sûr que vous avez une copie du chargeur de démarrage d'origine de votre carte, que vous avez réussi à revenir à la carte sans problème .
La personnalisation du comportement de chargeur de démarrage est effectuée en modifiant le fichier configuration.h. Voir les commentaires du fichier pour plus de détails.
Utilisez un périphérique compatible ST-Link, correctement connecté à votre carte et au PC. Utilisez la commande de téléchargement de Platformo pour installer. La réinitialisation de la carte avec Boot0 PIN réglée sur 3.3 V devrait également fonctionner, mais cela dépend de votre carte et de votre MCU (vérifiez le wiki pour plus d'informations sur le sujet).
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 your Préférer upload-protocol dans la section Env du fichier Platformo.ini de votre firmware, comme dans l'exemple suivant:
#
# 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
Visitez le wiki pour plus d'informations sur le clignotement et l'utilisation.
Plus de déclencheurs, plus de méthodes de clignotement, plus de MCS / planches STM32 à prendre en charge.
Jusqu'à présent, le projet a été testé sur les conseils suivants:
STM32F4XX:
STM32F1XX: