Inhaltsverzeichnis:

Serielles Debugging mit CloudX - Gunook
Serielles Debugging mit CloudX - Gunook

Video: Serielles Debugging mit CloudX - Gunook

Video: Serielles Debugging mit CloudX - Gunook
Video: Lec 9 | MIT 6.189 Multicore Programming Primer, IAP 2007 2024, November
Anonim
Serielles Debugging mit CloudX
Serielles Debugging mit CloudX

In diesem Projekt möchte ich das Konzept des Debuggens über das serielle Terminal erklären. Aber lassen Sie uns zunächst den Begriff durch seine Bedeutungen erklären.

1. serielle Kommunikation

Die serielle Kommunikation dient der Kommunikation zwischen dem CloudX-Board und einem Computer oder anderen Geräten. Alle CloudX-Boards haben mindestens einen sichtbaren seriellen Port (auch als UART oder USART bekannt): Serial. Es kommuniziert auf digitalem RX- und TX-Pin mit anderer Hardware oder seriellen Kommunikationsmodulen (wie GSM und GPS) sowie mit dem Computer über USB mit der SoftCard. Wenn Sie diese Funktionen verwenden, können Sie also nicht auch TX und RX für die digitale Ein- oder Ausgabe verwenden. Sie können den integrierten seriellen Monitor der CloudX-Umgebung verwenden, um mit einem CloudX-Board zu kommunizieren. Klicken Sie auf die Schaltfläche für den seriellen Monitor in der Symbolleiste und wählen Sie dieselbe Baudrate aus, die im Parameter von serialBegin() verwendet wird.

2. Debuggen

Debuggen bedeutet einfach, Fehler zu identifizieren und zu beseitigen (Computerhardware oder -software). Debuggen beinhaltet das Auffinden und Korrigieren von Codefehlern in einem Computerprogramm. Debugging ist Teil des Softwaretestprozesses und ein integraler Bestandteil des gesamten Softwareentwicklungslebenszyklus. Nehmen wir zum Beispiel an, Ihr Code wurde erfolgreich kompiliert und Sie testen Ihre Hardware und sie funktioniert nicht wie erwartet, obwohl es viele Möglichkeiten gibt, Ihren Code zu debuggen; eine einfache und effektive Methode zum Debuggen ist die Verwendung von seriellem Debugging. Die CloudX-IDE generiert bei erfolgreicher Kompilierung 2 Dateitypen, HEX- und COFF-Datei. Die HEX-Datei ist reiner Maschinencode, der zur Ausführung in der realen Welt in das Board geladen wird, aber auch auf Ihren PC-Simulationssoftwares wie Proteus Isis ausgeführt werden kann, während die COFF-Datei ein lesbares Format ist, das auf Ihren PC-Simulationssoftwares (Proteus Isis) ausführbar ist.. Für diesen Umfang werden wir zwei grundlegende Arten des Debuggens für das serielle Protokoll betrachten:

1. Sanftes serielles Debuggen:

Bei dieser Methode wird jeder Test und jedes Debugging auf dem PC durch eine nützliche Software wie Proteus ISIS durchgeführt. Da CloudX im Grunde eine COFF-Datei generiert, empfehle ich, diese für die PC-Simulation zu verwenden, da Sie damit grundsätzlich zwischen Codezeilen wechseln und feststellen können, woher ein Problem kommt Instrument-Modus -Tool können Sie jederzeit wissen, auf welcher Leitung sich der Controller gerade befindet. Schauen wir uns dieses Codebeispiel an,

Schritt 1:

Bild
Bild
Bild
Bild

/*

* Datei: newmain.c

* Autor: OGBOYE GODWIN * * Erstellt am 28. Juni 2018, 10:15 Uhr */

#enthalten

#enthalten

/* wir werden machen

rot pin1 grün pin2 gelb pin3 * taste pin4 */ char *tell= "hmmm, ich habe mich berührt"; setup () { pinMode (1, AUSGANG); pinMode (2, AUSGANG); pinMode(3, AUSGANG); pinMode (4, EINGANG); Serial_begin (9600); Schleife () { während (! readPin (4)); Serial_writeText (erzählen); Serial_writeText("….bewegt sich zu rot"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect (1, HIGH); Verzögerungen (200); // Versuchen Sie, alle Verzögerungen zu entfernen oder zu kommentieren und sehen Sie, was passiert, // dann ersetzen Sie sie (Sie werden es sicherlich lieben!). while(!readPin(4)); Serial_writeText (erzählen); Serial_writeText("….bewegt sich zu grün"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect(2, HIGH); Verzögerungen (200); // Versuchen Sie, alle Verzögerungen zu entfernen oder zu kommentieren und sehen Sie, was passiert, // dann ersetzen Sie sie (Sie werden es sicherlich lieben!).

while(!readPin(4));

Serial_writeText (erzählen); Serial_writeText("….bewegt sich zu gelb"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect(3, HOCH); Verzögerungen (200); // Versuchen Sie, alle Verzögerungen zu entfernen oder zu kommentieren und sehen Sie, was passiert, // dann ersetzen Sie sie (Sie werden es sicherlich lieben!). } }

damit können Sie sehen, wie wichtig das serielle Debuggen ist, wenn Sie die Verzögerungen entfernen. Wenn Sie das getan hätten, hätten Sie gesehen, wie lästig dieser einfache Code sein kann, wenn er in der realen Welt ohne diese Verzögerungen ausgeführt wird.

Schritt 2:

Bild
Bild
Bild
Bild
Bild
Bild

2. Hardware-Debugging:

Bei dieser Methode wird jeder Test und jedes Debugging durchgeführt, indem das CloudX-Prototyp-Board mit der SoftCard an den PC angeschlossen und entweder das serielle Terminal von CloudX IDE (empfohlen) oder eine andere nützliche Software wie Proteus ISIS compim, realTerm usw. verwendet wird. COFF generieren Datei kann hier nicht verwendet werden, da diese Methode erfordert, dass HEX in die Hardware gebootet wird. Ich empfehle, diese für CloudX-Softcard zu verwenden. Beachten Sie, dass Ihr Code ohne Schritte ausgeführt wird, sodass Sie jederzeit anhand der seriellen Ausgabe wissen können, wo welche Zeile der Controller gerade ausgeführt wird. Werfen wir einen Blick auf diesen Code das gleiche Beispiel oben aufgeführt, richten Sie Ihre Hardware so ein, dass sie ähnlich ist wie die rote LED --------- Pin1 grüne LED --------- Pin2 gelbe LED -- -------- Pin3-Taste --------- Pin4

Schritt 3:

Bild
Bild

Schritte

1. Verwenden Sie denselben Code wie oben

2. bootload in dein Board

3. Starten Sie das serielle CloudX-Terminal, indem Sie in der Symbolleiste auf die Schaltfläche "Seriell" klicken

4. Wählen Sie den gewünschten Port und die Baudrate aus (9600 in diesem Tutorial)

5. Starten Sie das Terminal, indem Sie auf Verbinden klicken (trennen Sie, wenn Sie beenden möchten)

6. Drücken Sie bei geöffnetem/verbundenem Port kurz die Taste nach Belieben und Sie sehen die serielle Ausgabe in den Terminalfenstern. Beachten Sie, dass Sie, wenn Sie die Verzögerungen des Codes haben, mehrere Zeilen der seriellen Ausgabe so schnell ohne Kontrolle ausführen, bevor Sie die Hände von der Taste nehmen. Wenn Sie aus irgendeinem Grund in Ihrem Code ein solches oder ähnliches Problem haben, können Sie diese Methode jederzeit zum Debuggen verwenden.

Empfohlen: