Debugprobleme C164

Gast #548403
Lesenswert?
• ▲
▼
Hi, ich nutze µVision und den c164ci. Programmiert und debuggt wird über 
die RS232 mit dem Debugger von Keil. Ich habe nun das Problem, das der 
C164 irgendwann stehenbleibt, und ich nicht die Stelle finden kann. 
Debuggen geht halt schwer, da keine echte Jtag vorhanden ist. Es werden 
Daten per rs232 empfangen ausgewertet, und bearbeitet. Printf geht auch 
nicht an allen stellen, da der Debugger ja über die rs232 läuft.
Per signlestep schmiert der c164 nach nem rets in der seriellen routine 
ab, aber das ist vermutlich dem seriellen debuggen geschuldet.

Hat wer ne Idee, wie ich vorgehen könnte, mir fällt langsam nichts mehr 
ein :(.


thnx SiO2
#548510
Lesenswert?
• ▲
▼
Du kannst z.B. einen Tracepuffer anlegen, in den Du eine Kennung 
schreibst, die die Stelle im Code eindeutig repräsentiert und nach dem 
Abschmieren die Mühle zurücksetzen und dann den Tracepuffer ansehen.

Der T. kann im einfachsten Fall ein einzelnes int sein, in den Du den 
Wert des _LINE_-Macros schreibst.

Eine komfortablere Version wäre ein Puffer, der viele Werte speichern 
kann.

Für das Schreiben des Tracepuffers schreibst Du Dir ein Macro, z.B.

   int LastLine = -1;
   #define TRACE()  LastLine = LINE

und setzt Macroaufrufe zunächst mit relativ großem Abstand in Deinen 
Code und startetst einen Test.

Dabei erhälst Du die letzte TRACE-Zeile, die noch durchlaufen wurde.

In einem Verfeinerungsschritt instrumentumentierst Du den Bereich 
zwischen dem letzten erfolgreichen TRACE() bis zum nächsten enger, usw., 
bis Du die Stelle gefunden hast.

Voraussetzung dafür, daß das Verfahren anwendbar ist, ist natürlich, daß 
Dein Rechner einen Speicherbereich hat, der beim Rücksetzen nicht 
überschrieben wird.
Gast #548667
Lesenswert?
• ▲
▼
hast du genug ram? liegt der Monitor im internen ram? hatte auch mal 
probleme beim debuggen (beim C167, aber ist ja +/- das gleiche), wenn 
die Monitorkofiguration nicht exakt stimmt, tretten genau solche effekte 
auf wei du beschreibst, würd als erstes mal da suchen...

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.