LightBus/STM32Bootloader

Aus Wiki CCC Göttingen
Version vom 8. August 2016, 07:59 Uhr von Hw (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

WORK IN PROGRESS

Code:

https://github.com/hwhw/stm32-projects/tree/master/lbus_bootloader

Aktivierung:

  • Ist für 2 Sekunden nach dem Einschalten aktiv und wartet auf LBUS-Kommandos. Soll in dieser Zeit der Timeout deaktiviert werden, muss ein "reset_to_bootloader"-Kommando gesendet werden.
  • Kann über Jumper auf dem Board als Default aktiviert werden: BOOT1-Pin muss auf high (1) gesetzt sein. Es erfolgt dann kein Timeout.
  • Kann aus der eigentlichen Firmware heraus aktiviert werden (via LBUS-Kommando "reset_to_bootloader")
    • Funktion benutzt die BKP-Register des STM32, in dem Daten auch über einen Reset erhalten bleiben, um ein entsprechendes Flag für den Bootloader zu setzen. Es erfolgt dann kein Timeout.

Funktionen:

Kontrolliert über den LBUS kann der Bootloader

  • einen Ping beantworten
  • wieder in den Firmware-Modus zurück wechseln
  • Firmware flashen
  • Speicher auslesen und zurückgeben
  • verschiedene Betriebsdaten auslesen und zurückgeben
    • Bootloader-Version
    • Firmware-Version und -Name
  • die eigene LightBus-Adresse setzen
  • den Konfigurationsspeicher löschen

...und natürlich die Firmware booten.