Hallo, ich bin gerade dabei eine HW mit einem STM32F1 zu designen. Zusätzlich mache ich mir Gedanke, wie ich später im eingebauten Zustand die Firmware updaten möchte. Ich bin mir bewusst, es gibt die Pins Boot. Jedoch möchte ich auf eine externe HW Beschaltung verzichten, wenn es geht, und den Bootloader plus die Update-Sequenz per Software auslösen lassen. Gibt es eine Beschreibung, wie ich ausschließlich per Firmware ohne Benutzung der Boot Pins, den Controller updaten kann. Vielen Dank.
Hallo! Du brauchst den Code um den Flash zu Löschen / zu Beschreiben. Schau dir dazu die StandardPeripheralLibrary genauer an. Außerdem gibt es eine Appnote zum Flash Programming bei ST. Hinweis: Soweit ich weiß sind bei den F1 die ersten Paar Sektoren readonly, solltest du den Firmware-Ausleseschutz aktivieren. Hinweis: Es wird vermutlich nötig sein, Teile der Flash-Kopierroutinen in den RAM zu linken. Schau dazu in dein Linker file und auf Google.
Hallo, kann ich damit auf eine äussere Beschaltung der Pin's Boot verzichten und alles in der Firmware realisieren?
Naja viel Arbeit ist es schon, du musst dir einen eigenen Flash Loader schreiben, dann musst du deine Firmware in irgend einer Form "zuführen" und den Flash Loader aufrufen. Wenn das alles funktioniert wirst du BOOT0 auf GND lassen können (direktes Booten in den User-Flash)
Hallo, ich habe das Problem, meine Hardware ist in einem Bussystem integriert und ich komme aus baulichen Gegebenheiten nicht mehr an die Hardware heran. Jetzt wollte ich den Upload über das Bussystem durchführen.
Ist machbar. Du brauchst auf jeden Fall - Ein Übertragungsprotokoll das dir die Firmware sauber überträgt - Genug Zwischenspeicher auf / am Mikrocontroller um die gesamte Firmware zwischenzuspeichern. Hast du den nicht, riskierst du, dass ein abgebrochenes Update zum Ausfall deiner Anwendung führt.
Nachtrag zum verfügbaren Speicher: Vor ein Paar Jahren habe ich noch einen anderen Ansatz ausprobiert: Wenn es deine Anwendung zulässt, könntest du auch einen Bootloader programmieren, der komplett selbständig über deinen Bus auf Firmwareupdates wartet. Das bedeutet allerdings, dass sehr viel Logik im Bootloader sein muss (die du dann leider schlecht updaten kannst). Es hat allerdings den Reiz, zusammen mit einer CRC-Checksumme das Gerät quasi unkaputtbar zu machen (zumindest was Firmwareupdates angeht). Der Bootloader würde dann immer einen Happen übers Netz empfangen und wegschreiben. Die Anwendung wird am Ende (und überhaupt) nur gebootet, wenn der CRC stimmt. Praktikabler ist allerdings die Lösung, die ich dir weiter oben schon genannt habe, vorallem weil Speicher recht billig ist (schau mal nach SPI flashes, bspw. http://www.digikey.de/product-search/de?x=22&y=9&KeyWords=W25Q )
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.