Gast
#6549137
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
1 | |
zu sehen. Viele Grüße, Chris
