Forum: Mikrocontroller und Digitale Elektronik Debugprobleme C164


von SiO2 (Gast)


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

von Uhu U. (uhu)


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.

von Daniel (Gast)


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...

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.