dsPIC33 data memory löschen

Gast #2542364
Hallo Zusammen,

ich arbeite mit dem dsPIC33FJ32MC202 und möchte, dass nach einem MCLR 
alle Variablen gelöscht werden, sprich data memory löschen.
Ein Bekannter hat gemeint, dass es hier eine Funktion über den Compiler 
geben könnte, leider habe ich nichts im user guid gefunden.

Habt Ihr vielleicht eine Idee?

Grüße,
Simon
Gast
Welcher Compiler gemeint ist wäre schon ein wenig hilfreich.

Meist macht das aber der Programmierer selber da es so oder so auf eine 
Schleife rausläuft.
Hallo Simon,

das macht MPLAB automatisch für dich. Dein Programm spingt nach einem 
Reset in eine Initialisierungsroutine. Unter "Project/Build 
Options.../Project/MPLAB LINK30/Don't initialize data sections" kannst 
Du es aber auch ausschalten und mußt dann den RAM selbst initialisieren.

Viele Grüße,
Steffen
Zum Resetvektor zu springen ist eine schlechte Idee. Dann werden zwar 
die Variabeln neu initialisiert, aber die Register eben nicht. Die Ganze 
Hardware hat dann noch den alten Zustand. Besser ist gleich einen Reset 
auszuloesen. Dann werden alle Register auf den im Manual beschriebenen 
Zusatnd gesetzt.
Pico Oschi schrieb:
> Zum Resetvektor zu springen ist eine schlechte Idee.

Kommt drauf an.
Wenn man alle Init-Funktionen sauber schreibt, setzen die dann die 
Hardware in den gewünschten Zustand unabhängig vom vorherigen Zustand.
Vor dem Sprung zu Resetvector muß man noch die Interrupts global 
abschalten.

Hat der MC einen Software-Resetbefehl, kann man natürlich diesen 
ausführen.
Aber den hat nicht jeder MC.


Peter
Gast
mein Problem ist, dass sich der dsPIC nach einem POR (Spannung kurz weg) 
anderst verhält als nach einem MCLR (z.B. nach dem programmieren). Grund 
hierfür ist denke ich die unsaubere Initiallisierung der Variablen. Da 
ich den Quellcode nicht selbst geschrieben habe, ist es wohl der 
schnellste Weg einfach nach jedem MCLR die Daten zu löschen.

Gruß,
Simon

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.