www.mikrocontroller.net

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


Autor: Sverige (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha Pypke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.