Bitte beachten Sie bitte: Diese Firmware befindet sich derzeit in der Entwicklungsphase. Funktionen können sich ändern und der Code kann Fehler enthalten. Verwenden Sie mit Vorsicht und melden Sie alle Probleme, denen Sie begegnen.
Dieser Bootloader für den STM32-Mikrocontroller bietet eine robuste und featurereiche Lösung für Firmware-Updates. Der Bootloader ist so konzipiert, dass er Firmware -Updates über die internen USB- oder UART -Schnittstellen erleichtert und ein externes SPI -Flash verwendet, um die Firmware vorübergehend zu speichern.

Dual -Slot -Firmware -Speicher: Der Bootloader verwaltet zwei separate Slots im externen SPI -Flash, um verschiedene Firmware -Versionen zu speichern. Dies ermöglicht sichere Firmware -Updates mit Rollback -Funktionen.
Firmware -Rollback: Bei einem Aktualisierungsfehler kann der Bootloader in die vorherige Arbeitsfirmware zurückkehren, damit das Gerät in Betrieb bleibt.
CRC32 -Validierung: Jede im SPI -Flash gespeicherte Firmware wird mithilfe von CRC32 -Überprüfungen validiert, um die Integrität der Daten zu gewährleisten und zu verhindern, dass die ausgeführte beschädigte Firmware verhindern.
Verschlüsselter Speicher: Der Bootloader hält alle in SPI Flash gespeicherten Firmware -Daten in verschlüsselter Form und verbessert die Sicherheit gegen unbefugten Zugriff.
Versionsverwaltung: Der Bootloader kann die aktuelle Firmware -Version melden und dabei helfen, die auf dem Gerät bereitgestellten Firmware -Versionen zu verwalten und zu verfolgen.
Externes Python -Skript: Es wird ein Python -Skript bereitgestellt, um das Laden neuer Firmware auf das Gerät zu unterstützen. Dieses Skript erleichtert auch die Versionsberichterstattung und andere Bootloader-Operationen.
FW FILE ) und fügt wichtige Metadaten wie Firmware -Version, Firmware -Name, Firmware -ID, Zeit und Datum in die Ausgabedatei ( BIN FILE ) hinzu.Lock Bin -Tool kombiniert diese Eingaben mit der Firmware -Datei und verschlüsselt das Paket, um seine Sicherheit während der Übertragung zu gewährleisten.BIN FILE ), die die verschlüsselte Firmware zusammen mit den eingebetteten Metadaten sicher enthält..fw -Datei, die alle Metadaten enthält, einschließlich der Erstellung von Zeit und Datum.Host App ist für die Übertragung der verschlüsselten Firmware -Datei an den Mikrocontroller verantwortlich..fw -Datei, extrahiert die erforderlichen Metadaten für Protokollierung oder Validierungszwecke und stellt eine Verbindung mit dem Mikrocontroller über einen COM -Port (z. B. USB/UART) her.Host App über USB/UART. Diese Pipeline übernimmt Firmware -Updates sicher und stellt die Integrität des Prozesses von der Verschlüsselung bis zur Installation sicher. Die Hinzufügung von Build -Uhrzeit und Datum in der .fw -Datei bietet für jede Firmware -Version weitere Rückverfolgbarkeit.
Klonen Sie dieses Repository:
git clone https://github.com/mayankpatel97/STM32-SPIFLASH-UART-BOOTLOADER.git
cd STM32-SPIFLASH-UART-BOOTLOADERKonfigurieren Sie den Bootloader mit Ihrer bevorzugten IDE (z. B. STM32Cubeid) oder über die Befehlszeile.
Erstellen Sie das Bootloader -Projekt und flashen Sie es auf Ihren STM32 -Mikrocontroller.
Schließen Sie Ihr STM32 -Gerät über USB oder UART an Ihren Computer an.
Führen Sie das bereitgestellte Python -Skript aus, um neue Firmware zu laden:
python firmware_loader.py --port /dev/ttyUSB0 --file firmware.binDas Skript wird automatisch die Übertragung, Validierung und Versionsverwaltung behandelt.
Nachdem die Firmware erfolgreich geladen wurde, führt der Bootloader eine CRC16 -Prüfung durch und startet entweder in die neue Firmware oder kehrt zur vorherigen Version zurück, wenn ein Fehler erkannt wird.
Im Falle eines Problems mit der neu geladenen Firmware kehrt der Bootloader automatisch in die vorherige Firmware zurück, die im anderen Steckplatz gespeichert ist, damit das Gerät in Betrieb bleibt.
Verwenden Sie den folgenden Befehl, um die aktuell ausgeführte Firmware -Version zu überprüfen:
python firmware_loader.py --port /dev/ttyUSB0 --versionDieses Projekt ist unter der MIT -Lizenz lizenziert - Einzelheiten finden Sie in der Lizenzdatei.
Fühlen Sie sich frei, zu diesem Projekt beizutragen, indem Sie Pull -Anfragen oder Öffnen von Problemen für Fehler oder Feature -Anfragen senden.
Besonderer Dank geht an die Open-Source-Community für die Bereitstellung von Tools und Bibliotheken, die bei der Entwicklung dieses Bootloaders geholfen haben.