Ist der RAM Speicher nach einem Watchdog oder Software Reset gelöscht? Habe hier immer 0 Werte im Speicher. Evtl. ist das die Initialisierung von Mikropascal http://www.mikroe.com/mikropascal/arm Habe aber gelesen, dass normalerweise der Speicherwert bei einem Watchdogreset erhalten bleibt. Ich brauche momentan nur ein Byte welches hochgezählt wird zum Testen der Baudrate.
Der mc manipuliert das RAM bei einem Reset i.d.R. nicht (Beispiel: ATmega, STM32). Die Startup-Routine, die Dein Compiler vor dem Start Deines Programms ausführt, initialisiert allerdings einige RAM-Bereiche mit Nullen. Wie das bei Mikropascal aussieht, weiss ich nicht. Für den gcc kann ich Dir Beispiele geben, wie Du eine Variable reset-resistent und an einer festen Adresse im RAM ablegen kannst (Stichwort: Linkerfile). Gruß, Stefan
Ohne Compiler- oder Linker-Tricks geht es, wenn du Hardware-Register benutzt. Die meisten STM32 haben im RTC-Block ein paar "Backup-Register" BKP0BR bis BKPxBR. Die werden von keinem normalen Reset gelöscht, sondern haben einen extra Hardware-Reset. Das ist eine Alternate Function, z.B. RTC_TAMP1 auf PC13, du musst den Eingang also nicht verdrahten. Als Bonus könnte man sie per Batterie versorgen.
Danke für den Tipp! Hab es irgendwie hinbekommen mit den Backup Registern. Allerdings geht das nur, wenn vorher ein paar Bits in den entsprechenden Registern gesetzt werden. Enable und so weiter. Lieber wäre mir, wenn das genauso wie bei den AVR's funktionieren würde. Die behalten den Speicher auch beim Reset.
Rainer S. schrieb: > Lieber wäre mir, wenn das genauso wie bei den AVR's funktionieren würde. Die > behalten den Speicher auch beim Reset. Die Hardware verhält sich genau gleich, das normale RAM behält seine Daten. Die Laufzeitumgebung von C löscht globale Variablen, Pascal macht das anscheinend nicht. Cortex M ist doch angeblich "genormt", also müsste dein Pascal-Compiler doch auch Programme für STM32 erzeugen können. Unterschiede sollte es nur in Bereichen geben, die mit Pascal sowieso nicht erreichbar sind. Versuch macht kluch!
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.