Hallo,
ich programmiere aktuell einen Bootloader für den STM32H743 Controller.
Hier habe ich nun ein sehr merkwürdiges Phenomän. Wenn ich den int.
Flash beschreibe bleibt dieser bei 0xFFFFFFFF (Zustand nach dem Erase).
Lege ich nun einen Pointer auf eine beschriebene Adresse im Flash zeigt
dieser ebenfalls 0xFFFFFFFF an. Gehe ich aber jetzt im Disassembly über
die Instruktionen wo der Pointer verwendet wird dann wird ja der
Datenwert an der Adresse in ein Arbeitsregister geladen. In diesem
landet dann jedoch nicht der Wert 0xFFFFFFFF sondern ein komplett
anderer Wert.
Das einzige was mir hier einfällt ist, das der Controller einen Cache
hat. Dieser ist aber explizit deaktiviert. Hat jemand eine Idee was das
noch sein könnte?
Im Bild im Anhang ist die Flash-Stelle (links, "Symbolic Memory"), die
lokalw Variable fw_len (mitte, "locals") und rechts die Register (Wird
nach R0 geladen) sowie der entsprechende Assemblerbefehl
zu sehen.
Viele Grüße,
Chris