STM32L151 - FW-Update

Gast #4834607
Hi!

Auf eine Baugruppe verwende ich einen STM32L151RD (mit 384kByte Flash).
Die FW ist zur Zeit knapp 100 kByte groß.
Ziel ist es, über die Datenschnittstelle ein neues FW Image zu laden.
Da hier ein proprietäres Protokoll läuft, müsste man das Image zunächst 
im extra so großen Flash zwischengespeichert, validiert und dann "final" 
geflasht  werden.
Beim letzteren hakt's nun. Ich müsste das mit dem Bootloader machen, 
aber wie bringe ich den dazu von Flash-Adresse 0x2xxxxx auf Adresse 
0x2000000 zu flashen!? Was für einen Bootloader nimmt man dazu am 
Besten?

Danke & Grüße für eure Tipps!

Viele Grüße
Martin
#4834622
Booty schrieb:
> Was für einen Bootloader nimmt man dazu am
> Besten?

Einen selbstgeschriebenen. Man lädt eine Page ins RAM und nimmt dann die 
normale RAM2Flash Funktion.

Interessanter sind die Übergange (Applikation->Bootloader-> neue App) 
beim Flashen wenn die Stromversorgung ausfallen kann. Ein guter 
Bootloader behandelt auch diese Fälle korrekt.
Gast #4835087
Hallo!

Danke für eure Antworten! - Aber ... ähm ... Der STM32L151RD hat nur 48k 
RAM und die FW braucht davon knapp 40k!
Ein FW-Image mit 100k bekomme ich da so oder so nicht rein...
Gast #4835109
Lutz schrieb:
> Jim M. schrieb:
>> Man lädt eine Page ins RAM und nimmt dann die normale RAM2Flash
>> Funktion.

Bin verwirrt!

Das die FW Fragemente zunächst ins RAM und anschließend ins Flash 
geschrieben werden ist für mich logisch. Dann liegt das FW-Image im 
Flash irgendwo hinter der bestehenden Applikation. Man kann eine 
Prüfsumme darüber berechnen und mit einem Sollwert vergleichen. Ist das 
ok, muss eben dieses Image von einem Bootloader aus dem Adressbereich 
hinter der aktuellen FW-Version an den Anfang (0x80000000) kopiert 
werden. So einen Bootloader oder ein How-To suche ich. Wenn ich nach 
"STM32 Bootloader" googel bekomme ich nur Ergebnisse zum integrierten 
Bootloader der von UART1 aus angesteuert/bedient werden kann. Der hilft 
mir nach meiner gegenwärtigen Recherche nicht weiter.
Gast #4835122
Du bestimmst doch, wo an welche Adresse im Flash etwas geschrieben wird. 
Haeppchenweise. IAP ist das Stichwort. Musst nur ein paar Sachen 
beachten. Halt alle für FW-Update erforderliche Funktionen ins RAM, VTOR 
usw..

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.