-
Hallo!
Ich möchte noch was passendes zu diesem Thema fragen. Ich habe vor ca. einem Jahr mit PIC´s angefangen. Bei den vorherigen Prozessorem musste ich immer zuerst die Hardware verdrahten und dann den Spinnenetz Programmieren. Nach dem ich auf PIC umgestiegen bin habe ich Hardware in einem Chip und konnte nur Programmieren geniessen. Da hat mir aber der direkte Einblick in RAM gefehlt. Deswegen habe ich mir ein paar "Werkzeuge" (Programme) eingerichtet. Sie haben mein Einstieg deutlich beschleunigt und die benutze ich bis heute. Jetzt möchte ich sie in diesem Forum veroffentlichen. Ich möchte sie auch weiter entwickeln. Meine Frage: wie nennt man Fachmänisch solche Programme die folgendes ermöglichen ? :
- zeigen gewähltes Teil des RAM´s sogar dann, wenn das ausführendes Programm in endloser Schleife läuft
- ermöglichen Eingabe Hexzahlen in bestimmte Register danach starten eines Programms und anschliessend zeigen den Inhalt bestimmten Register
Es handelt sich um Programme die sich im Programspeicher des PIC´s befinden. Der PIC ist mit einem Miniterminal (3 Tasten + 4x20 Zeichen Matrixdisplay) verbunden.
Vielen Dank für alle Vorschläge im voraus!
MfG
-
@PICture
Ein Kommunikations-Programm für den SAB80C166 nennt sich Monitor-Programm, das Auflisten des Speichers = HexDump (auch wenn da ASCII-Zeichen mit angezeigt werden), Ändern von Registern = RegisterChange, ... Alles in Allem gibts / gabs das auch für den PC und nennt / nannte sich Debug.com, also Debugger ? Monitor-Programm ?
PS: Wenn Du MPLAB benutzt, kannst Du doch den Simmulator benutzen und den Programmablauf verfolgen, Speicherinhalte betrachten, Breakpoints setzen, ....
-
Kann ich da auch was sehen wenn das Programm in endloser Schleife laüft?
Ich habe das entwickelt fur Schaltungen die mir echter Hardware laufen, was konkretes machen und nicht simulieren.
MfG
-
Nein, das geht nicht, das Programm wird immer unterbrochen, meistens per Interrupt. Die Rücksprung-Adresse ist ja bekannt, benutzte Register werden gerettet und so können diverse Einblicke in das Innerste des µC vorgenommen werden.
Wenn bei MPLAB ICD1 der Debugger benutzt wird, wird ein zusätzliches Debug-Programm an eine bestimmte Stelle des PIC mit 'gebrannt'. Dieser Platz muß zum Debuggen frei bleiben. Ebenfalls die RAM-Adresse 0x70.
Beim 80C166 wird an der RAM-Adresse (Debuggen funktioniert nur im RAM) des Breakpoints der Befehl gegen einen Trap-Befehl (ähnlich Int) ausgetauscht. Bei Erreichen dieser Adresse wird zum Monitor-Programm 'umgeleitet'. Nach Löschung des Breakpoints wird der ursprüngliche Befehl wieder eingesetzt. Wie das beim PIC funktioniert, der ja kein RAM-ProgrammSpeicher hat, kann ich nicht sagen, auch nicht, ob das Debug-Programm dann durch einen Interrupt aufgerufen wird.
-
Bei meinem Programm wenn man z. B. für zwei Schleifen den gleichen Register als Zähler nimmt und es wird eine endlose Schleife daraus, dann wird man sehen, das sich Inhalt nur des eines Registers ständig ändert. Somit kann man wirklich schnell viel Fehler finden. Ich möchte bloss den Neulingen die Programmierung erleichtern. Ich kenne solche die fünf minuten schreiben ein Programm und danach fünf Stunden suchen Fehler. Bei mir war vor zig Jahren auch so.
MfG
-
Viele PIC-User (-Beginner) testen ihre (kleinen) Programme erst mit dem MPLAB-Simmulator. Wenn dann beim echten Ablauf Probleme auftauchen, wenden sie sich an ein PIC-Forum oder ein Forum mit PIC-Unter-Forum.
-
Also an uns ;)
Ich muss aber sagen, dass der Simulator richtig gut ist und von dem meisten unterschätzt wird - habe ich am Anfang auch gemacht, aber inzwischen eins meiner Lieblingstools für die PICs.
Was ich dir empfehlen kann, wenn du sauber debuggen willst, wäre das ICD2. Das kostet zwar bissle was, aber ist sein Geld voll wert. Du kannst Breakpoints setzen, das Programm im Einzelschrittmodus ablaufen lassen, Variablen überwachen, ...
Das ICD2 ist natürlich für die meisten Einsteiger zu teuer, daher empfehle ich da immer die klassische Methode: Debug-Meldungen über die serielle Schnittstelle. Damit weiss man immer, was das Programm grade macht und kann sich dann gezielt auf die Suche machen.
Für Stackprobleme ist der Simulator aber das einzig wahre (selbst wenn man ein ICD2 hat).
MfG
Stefan
-
Hallo stegr!
Hast Du in Deinem Beitrag mir das ICD2 empfohlen? Danke, aber ich habe keine Problemme mit programmierung in ASM, da ich als Umsteiger von Z80 der fast 1000 Befehle hat, nur die PIC Befehle erlernen musste.
MfG
-
Zum Simmulieren ist 'nur' MPLAB erforderlich; das gibt's kostenlos.
Zum Debuggen wird dann ICD 2 benötigt und das Ganze kann dann auch wirklich auf dem Board getestet werden, auf dem der PIC sitzt einschließlich der gesamten Hardware.
-
Kann mir jemand sagen was ICD 2 ist? Mit Debuggen ist warscheinlich eine art Fehlersuche gemeint oder?