Forum: Mikrocontroller und Digitale Elektronik STM32: Problem bei Kombination von Bootloader und Applikation einer .hex


von Peter (Gast)


Lesenswert?

Hallo,

ich habe gerade ein Problem:

Bootloader und Applikation laufen wunderbar wenn sie getrennt geflasht 
werden:
Wenn ich im Bootloader Projekt und anschließend Applikations Projekt ein 
"Download to Flash" durchführe und dann einen Power Cycle mache 
funktioniert alles besstens.

wenn ich jedoch mit srec_cat die beiden hex-files kombiniere, dieses 
dann auf den STM32 lade, startet die Applikation nach dem Sprung aus dem 
Bootloader nicht korrekt. Ich nehme an, sie bleibt in irgendeinem 
Hardfault hängen. Mit Sicherheit kann ich das mangels 
Debuggingmöglichkeiten nicht sagen.

gibt es eine Möglichkeit den Flash des STM32 auszuelesen, so dass er 
dann als binary Datei o.Ä. vorliegt?

Wo kann der Fehler liegen?
Ich bin Ratlos.

Vielen Dank und Gruß
Peter

von Star K. (starkeeper)


Lesenswert?

Kannst du das "getrennt flashen" etwas näher erläutern? Wenn du deine 
Applikation richtig eingerichtet hast und sie auf einen Controller ohne 
Bootloader flasht dann kann die Applikation nicht starten. Wenn sie dies 
bei dir doch tut, dann hast du was grundsätzliches beim Einrichten der 
Sections für Bootloader und Applikation falsch gemacht.

Warum musst du die Sachen mit srec_cat zusammenfügen? Du kannst das 
bin-file vom Bootloader auch dem Linker der Applikation mit geben und 
der bindet es für dich korrekt ein.

von Peter (Gast)


Lesenswert?

danke für die Antwort.

getrennt flashen:
in den einzelnen Projekten jeweils auf "Download" klicken.

Klar, die Applikation startet nur dann, wenn der Bootloader an Ort und 
Stelle ist.

wie ist das vorgehen um dem applications linker den bootloader mit 
zugeben?
muss ich im scatter file eine neue section für den bootloader anlegen?


Gruß

von Star K. (starkeeper)


Lesenswert?

Was ist ein scatter file?
Ich kenne nur das nur bei IAR, dort kann man in der Linker Konfiguration 
eigene Lables vergeben und dann z.B. das Bootloader Image daran binden. 
Im Linker gibt man an wo dieses Label platziert werden soll.

Am besten schaust du mal in die Dokumentation von deinem Linker, dort 
sollten so Allerwelts Dinge wie das Einbinden eines Bootloaders 
beschreiben sein.

von Arne (Gast)


Lesenswert?

Peter schrieb:

> gibt es eine Möglichkeit den Flash des STM32 auszuelesen, so dass er
> dann als binary Datei o.Ä. vorliegt?
ST-Link, J-Flash...

> Wo kann der Fehler liegen?
Wie immer: Zeile 42!

Hab selbst einen STM32 Bootloader geschrieben, der CRC32 Check über sich 
macht und über die App(s) und dann auch eine von beiden starten kann.
Keine Ahnung wieso das so schwierig sein soll...

von STM32User (Gast)


Lesenswert?


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
Noch kein Account? Hier anmelden.