En vertu de développement, veuillez noter: ce firmware est actuellement à l'étape de développement. Les fonctionnalités peuvent changer et le code peut contenir des bogues. Utilisez avec prudence et signalez les problèmes que vous rencontrez.
Ce chargeur de démarrage pour le microcontrôleur STM32 fournit une solution robuste et riche en fonctionnalités pour les mises à jour du micrologiciel. Le chargeur de démarrage est conçu pour faciliter les mises à jour du micrologiciel via les interfaces USB ou UART internes, en utilisant un flash SPI externe pour stocker temporairement le micrologiciel.

Stockage du firmware à double emplacement: le chargeur de démarrage gère deux emplacements distincts dans un flash SPI externe pour stocker différentes versions du micrologiciel. Cela permet des mises à jour sécurisées du micrologiciel avec la capacité de recul.
Rollback du firmware: en cas de défaillance de mise à jour, le chargeur de démarrage peut revenir au firmware de travail précédent, garantissant que l'appareil reste opérationnel.
Validation CRC32: chaque micrologiciel stocké dans le flash SPI est validé à l'aide de vérifications CRC32 pour garantir l'intégrité des données et empêcher l'exécution du firmware corrompu.
Stockage chiffré: le chargeur de démarrage maintient toutes les données du micrologiciel stockées dans SPI Flash sous une forme chiffrée, améliorant la sécurité contre l'accès non autorisé.
Gestion de la version: le chargeur de démarrage peut signaler la version actuelle du micrologiciel, aidant à maintenir et à suivre les versions du micrologiciel déployées sur l'appareil.
Script Python externe: un script Python est fourni pour aider à charger un nouveau firmware sur l'appareil. Ce script facilite également les rapports de version et d'autres opérations liées au chargeur de démarrage.
FW FILE ) et joint des métadonnées cruciales comme la version du micrologiciel, le nom du micrologiciel, l'identifiant du micrologiciel, l'heure de construction et la date du fichier de sortie ( BIN FILE ).Lock Bin combine ces entrées avec le fichier du firmware et chiffre le package pour assurer sa sécurité pendant la transmission.BIN FILE ) qui contient en toute sécurité le firmware crypté avec les métadonnées intégrées..fw sécurisé et chiffré qui contient toutes les métadonnées, y compris l'heure et la date de construction.Host App est responsable de la transmission du fichier de firmware crypté au microcontrôleur..fw crypté, extrait les métadonnées nécessaires à des fins de journalisation ou de validation, et établit une connexion avec le microcontrôleur via un port com (par exemple, USB / UART).Host App via USB / UART. Ce pipeline gère en toute sécurité les mises à jour du micrologiciel, garantissant l'intégrité du processus du cryptage à l'installation. L'ajout de l'heure et de la date de construction dans le fichier .fw offre une traçabilité supplémentaire pour chaque version du micrologiciel.
Cloner ce référentiel:
git clone https://github.com/mayankpatel97/STM32-SPIFLASH-UART-BOOTLOADER.git
cd STM32-SPIFLASH-UART-BOOTLOADERConfigurez le chargeur de démarrage à l'aide de votre IDE préféré (par exemple, STM32Cubeide) ou via la ligne de commande.
Créez le projet Bootloader et flashez-le sur votre microcontrôleur STM32.
Connectez votre appareil STM32 à votre ordinateur via USB ou UART.
Exécutez le script Python fourni pour charger un nouveau firmware:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.binLe script gérera automatiquement le transfert, la validation et la gestion des versions.
Une fois le firmware chargé avec succès, le chargeur de démarrage effectuera une vérification CRC16 et démarrez dans le nouveau firmware ou reviendra à la version précédente si une erreur est détectée.
En cas de problème avec le firmware nouvellement chargé, le chargeur de démarrage revient automatiquement au firmware précédent stocké dans l'autre emplacement, garantissant que l'appareil reste opérationnel.
Pour vérifier la version du firmware en cours d'exécution, utilisez la commande suivante:
python firmware_loader.py --port /dev/ttyUSB0 --versionCe projet est autorisé en vertu de la licence MIT - voir le fichier de licence pour plus de détails.
N'hésitez pas à contribuer à ce projet en soumettant des demandes de traction ou en ouvrant des problèmes pour tous les bogues ou les demandes de fonctionnalités.
Un merci spécial à la communauté open source pour avoir fourni des outils et des bibliothèques qui ont aidé à développer ce chargeur de démarrage.