STM32 Bootloader aus der Applikation heraus starten

Gast #1609428
Hallo,

hat jemand eine Idee, wie man den STM32 internen Bootloader aus der 
eigenen Applikation heraus starten kann?
Ich habe keine Möglichkeit die Boot0 und Boot1 Pins zu toggeln. Kann man 
z.B. den PC einfach auf die Bootloader Startadresse (0x0000 0000) 
umsetzen? In den AppNotes finde ich nur die die Startvariante nach einem 
Reset und dem Toggeln der Boot Leitungen.

Gruß
Florian
Gast
Hallo,

das bringt mir nichts, da ich dann die Boot0 und Boot1 Leitungen Toggeln 
muss. Ich kann ein Reset mit GenerateSystemReset() auslösen. Ich will 
aber kein Reset sondern einen Aufruf den Bootloaders, ohne Abfrage der 
Boot Pins.
Ob das geht hängt davon ab, wie der Bootloader programmiert wurde.

Der liegt ja im System Memory, aber im Bootloader-Modus liegt dieses 
gespiegelt an Adresse 0. Wenn er nur auf dieser Spiegeladresse läuft, 
dann geht das ohne Reset und Boot-Pins wohl überhaupt nicht.

Wirst wohl mal reinschauen müssen. Wenn du Glück hast, dann zeigt der 
Bootloader-Resethandler direkt ins System Memory. Dann könnte es 
funktionieren, indem du nach entsprechender Initialisierung vom 
Stackpointer dort reinspringst.
Gast
Ich hab schon mal einen eigenen USB Bootloader programmiert. Dazu habe 
ich die ersten 8KB Flash genommen, das eigentliche Programm läuft ab der 
8KB Adresse.
Das ganze hatte ich in einem einzigen Code Programmiert, also der 
Bootloader und die Firmware waren ein Projekt.
War ziemlich trickreich mit dem Speicherbereich, aber ging.

Der Knackpunkt war, aus der Firmware die USB Verbindung dem Bootloader 
zu übergeben, so dass dieser mit der gleichen USB Kommunikation den 
Flash updaten konnte...
(Auch die selbst geschriebene PC-Software macht die Bedienung und den 
FW-Update)

Selbst ist der Mann/Frau.

Eine Möglichkeit die eigene Flash-Routine zu starten kenne ich auch 
nicht.

In diesem Forum bekommst Du garantiert Hilfe:
http://www.st.com/mcu/forumsid-23.html
Direkt von ST.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.