mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C18 Push & POP?


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Mein PIC-Programm zeigt selstsame BUGS.
In unrythmischen Zyklen Gerät mein Programm in einen Abschnitt, in den 
es
eigentlich nicht kommen darf. Irgenwie wird eine Variable überschrieben.
Da es so unregelmäßig ist, kann ich das nicht druch 
"Debugger-Einzelschritte" finden.
(Gibts eine möglichkeit beim MPLAB bei einer Änderung in einer 
bestimmten Speicherzelle das Programm zu stoppen?)


Als ich PIC´s noch mit Assambler beschieben habe, mußte man vor den 
ISR´s die Arbeitsvariablen Pushen und am ende wieder "poppen".

Beim C18 scheint dies ja automatisch zu gehen, ist darauf wirklich 
verlass?

Gruß Stefan

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:

> Als ich PIC´s noch mit Assambler beschieben habe, mußte man vor den
> ISR´s die Arbeitsvariablen Pushen und am ende wieder "poppen".
>
> Beim C18 scheint dies ja automatisch zu gehen, ist darauf wirklich
> verlass?

Darauf kannst du dich im Allgemeinen verlassen. Wenn dem nicht so wäre, 
hätte das schon jemand anderer bemerkt.

Du wirst halt noch einen Bug im Programm haben.

Autor: H.J.Seifert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt nach einem Stack-Überlauf.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Stack Überlauf kann duchr verschachtelte Interrupts kommen oder?

Autor: anonymous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, durch "nesting"

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, danke schonmal.

nochmal zwei fragen dazu:

Müßte die Option: "Stack Overflow Reset" nicht einen Reset auslösen?
Die habe ich nämlich an, daher denke ich ich habe einen anderen 
Programmierfehler.

Kann ich irgendwie mit dem ICD2 sehen, wann ich eine Variable ändert?
(Ohne Einzelschritt-Debuging)

Gruß stefan

Autor: Hermann U. (Firma: !www.pcb-devboards.de) (gera82)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst, so weit ich es weiß
"Stack Overflow Reset" und "Stack Underflow Reset" abfragen.
Frage einfach alle Reset-Flags nach dem Absturz ab, und werte Sie aus.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI,

der PIC macht aber beim Absturz selbst kein Reset - er kommt wiegesagt 
nur in einen Bereich in den er nicht soll.
Da er keinen Reset macht, nehme ich an, dass er keinen "Stack Overflow" 
oder Undeflow hat.

Gruß

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.