Pic18F hängt sich komplett auf - Speicher zerstört?

Gast #402123
Lesenswert?
• ▲
▼
Hallo!

Mein Programm für den 18F4620 funktioniert eigentlich ganz gut. Nur
nach einigen Stunden kommt es immer wieder vor, dass sich der Prozessor
komplett aufhängt. Er ist dann immer duch ein neuprogrammieren wieder zu
retten, manachmal auch durch einen längeren reset, bzw. Abziehen der
Spannungsversorgung.

Leider verwende ich genug Bibliotheken von anderen an denen es liegen
könnte. Soweit ich weiß, greifen die auch auf den Programmspeicher zu
um dort Daten persistent abzuspeichern. Kann es daran liegen?

Nach welchem Fehler klingt das für euch am ehesten? Will nur
rausbekommen wo ich anfangen soll zu suchen. Für mich klingts irgendwie
nach Speicherproblem, kanns was anderes auch sein?

Dankeschön!
Gast #402124
Lesenswert?
• ▲
▼
Hallo

Vermute mal, eines deiner Module schreibt irgendwo in den Speicher, wo
es nicht sollte, und zerschiesst dadurch das Programm. Dass dann nicht
mehr viel geht, dürfte klar sein ;-)

Gruss

Michael
Gast #402125
Lesenswert?
• ▲
▼
Mach doch mal einen Verify nachdem nichts mehr geht. Somit kannst du
vermutlich erst einmal eingrenzen in welchen Bereich was geschrieben
wird. Dann nehme gezielt einige Funktionen raus, somit weiter
eingrenzen. Zu guter letzt Source-Code überprüfen.
Gast #402126
Lesenswert?
• ▲
▼
Dankeschön, Leider hat der Verify prinzipiell nicht hin, weil ja einige
der Module beim ersten Start des Prozessors sofort etwas in den
Programmspeicher schreiben.
Debuggen kann ich auch nicht vernünftig mit dem ICD, weil die Module so
groß sind, dass ich alle optimierungsmethoden aktivieren muss.
#402127
Lesenswert?
• ▲
▼
"...weil ja einige der Module beim ersten Start des Prozessors sofort
etwas in den Programmspeicher schreiben."


Was isn das fürn komisches Programm ???

Der Flash wird normaler Weise nie beschrieben, da die Schreibzyklen
limitiert sind und Zeit kosten.

In den Flash schreibt nur ein Bootloader bei einem Update und auch da
nie in sich selbst (= Selbstzerstörung), sondern nur in den
Applikationsbereich.
Einen Bootloader schreibt man immer so, daß er
Selbstzerstörungsversuche abweist.


Peter
Gast #402128
Lesenswert?
• ▲
▼
Wie sind denn die Speicherbereiche festgelegt in denen die einzelnen
Module schreiben dürfen ?
Falls nicht nur geschrieben sondern auch gelöscht wird, unbedingt auf
die Größe der Flash-Blöcke achten.
Gast #402129
Lesenswert?
• ▲
▼
Na ... scheint wohl doch nicht so wichtig zu sein.

> manchmal auch durch einen längeren reset, bzw. Abziehen der
Spannungsversorgung.

Das kann aber sicher nicht am Flash liegen, wohl eher eine Variable die
einen unzulässigen Wert annimmt und nach längerem Abschalten zufällig
wieder mit einen brauchbaren Wert (uninitialisiert) startet.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.