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
hat das Ding keinen Watchdog? Wenn ja Watchdog starten und in eine while(1); laufen...
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.