Hallo Experten, wenn der WatchDog anschlägt wird ein Reset ausgeführt. Dann ist das Display (per Initialisierung) schwarz. Ich möchte feststellen, ob ein POR (Kaltstart) oder ein WDR (Warmstart) ausgeführt wird und entsprechend den Display Inhalt nicht initialisieren. Problem: Der IAR Compiler manipuliert das RAM bevor mein Programm einsetzt. Dann ist der aktuelle Displayinhalt weg. Wie kann ich in der IAR-IDE dieses Aufrufen der IAR-Assemblerroutine ausschalten? freundlichst, Uwe
Moin, meinst Du mit "manipuliert das RAM" die Initialisierung der Variablen durch den Startup-Code? Du kannst beispielsweise den Speicherbereich, in dem der Framebuffer liegt im *.icf als "do not initialize" spezifizieren und dann ist es komplett Dir überlassen, wie da sinnvolle Daten rein kommen... Mehr Details liefert der C/C++ Development Guide, wenn Du nach "do not initialize directive" suchst. Gruß, Michael
Uwe W. schrieb: > Display (per Initialisierung) schwarz. Ich möchte feststellen, ob ein > POR (Kaltstart) oder ein WDR (Warmstart) ausgeführt wird und > Problem: Der IAR Compiler manipuliert das RAM bevor mein Programm > einsetzt. Dann ist der aktuelle Displayinhalt weg. Wie kann ich in der Der Compiler "manipuliert" da nichts, sondern der Startup-Code, der i. d. R. automatisch dazu gelinkt wird, löscht halt Teile des RAM. Soll ja so passieren. Wenn man das nicht will, wertet man im selbst geschriebenen bzw. zumindest modifiziertem Startup-Code die Flags im RCC_CSR (dazu sind die auch da) aus und überspringt halt ggf. das Löschen. Oder man legt den Display-Buffer in den nicht-initialisieren RAM-Teil und löscht den nur bei Bedarf selbst.
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.