"Prozess" killen

Gast #65933
Lesenswert?
• ▲
▼
Hallo zusammen,

ich progge einen 80C537 und habe gerade folgendes Nervenraubende Prob:

Ich habe einen Timer laufen, der jede Milisekunde auslöst und Messwerte
aufnimmt. Die kommen aus dem AD Wandler, Capture / Compare, DS1820, I2C
usw.

Jetzt habe ich noch eine Endlosschleife laufen, in der die Daten auf
einem Grafikdisplay laufen. Diese Endlosschleife bleibt irgendwann an
irgendeiner Stelle stehen, die ich in dem komplexen Code nur schwer
erkennen kann. Jetzt möchte ich als erste große Lösung das
Hauptprogramm überwachen und nur dies neu starten. Ich habe nur keine
Idee wie? Der Timer läuft sauber weiter. Hier könnte ich also
eingreifen. Nur wie kann ich ohne WDT eine Endlosschleife resetten?

Danke für Ideen.

Gruß Binnesmann
#65936
Lesenswert?
• ▲
▼
Das "Killen" bringt dir doch keinerlei Information.

Wenn der Timerinterrupt noch geht, dann könntest Du dort z.B. über die
UART die Adresse aus dem Stack ausgeben, wo der Timerinterrupt das
hängende Programm gerade unterbrochen hat. Das dürfte wesentlich mehr
helfen.


Ansonsten:
"Killen" tut man bei MCs mit "Jump 0000" (Soft-Reset).
Aber beim 8051 erst, nachdem alle Interrupts mit "RETI" beendet
wurden.

Alle anderen "Killversuche" erzeugen nur Mist im Stack- und
Datenbereich.


Peter
Gast #65937
Lesenswert?
• ▲
▼
Hallo Peter,

ich habe da glaube ich die beste Möglichkeit zum debuggen vor lauter
Bäumen nicht gesehen. So'n sch... . Passiert immer wenn man ohne zu
denken was machen und sich dann so verstrickt das nachher die absolute
Blockade einsetzt.

Werde da erstmal ansetzen und schauen wie ich dem Fehler Herr werde.

Mit Deinem Tip habe ich sogar noch einen anderen Fehler gefunden. Der
DPTR wird in meinen IRQ Routienen noch expliziet in den Stack
geschoben. Das fällt ja flach. Oder brauche ich das hier doch?

Gruß Binnesmann

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.