Forum: Mikrocontroller und Digitale Elektronik Pic18F hängt sich komplett auf - Speicher zerstört?


von Sverige (Gast)


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!

von mr.chip (Gast)


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

von Sascha Pypke (Gast)


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.

von Franz (Gast)


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.

von Peter D. (peda)


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

von Dieter Werner (Gast)


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.

von Dieter Werner (Gast)


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.

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
Noch kein Account? Hier anmelden.