Πίνακας περιεχομένων:

Serial Debugging With CloudX: 3 Βήματα
Serial Debugging With CloudX: 3 Βήματα

Βίντεο: Serial Debugging With CloudX: 3 Βήματα

Βίντεο: Serial Debugging With CloudX: 3 Βήματα
Βίντεο: #224 🛑 STOP using Serial.print in your Arduino code! THIS is better. 2024, Νοέμβριος
Anonim
Σειριακή εντοπισμός σφαλμάτων με το CloudX
Σειριακή εντοπισμός σφαλμάτων με το CloudX

Σε αυτό το έργο, στοχεύω στην εξήγηση της έννοιας του εντοπισμού σφαλμάτων μέσω του σειριακού τερματικού. Αλλά πρώτα ως αρχή, ας εξηγήσουμε την έννοιά του μέσα από τα νοήματά του.

1. σειριακή επικοινωνία

η σειριακή επικοινωνία είναι για επικοινωνία μεταξύ της πλακέτας CloudX και ενός υπολογιστή ή άλλων συσκευών. Όλοι οι πίνακες CloudX διαθέτουν τουλάχιστον μία σειριακή θύρα (γνωστή και ως UART ή USART): Serial. Επικοινωνεί σε ψηφιακή ακίδα RX και TX με άλλες συσκευές σκληρού υλικού ή σειριακές μονάδες επικοινωνίας (όπως gsm και gps) όπως και με τον υπολογιστή μέσω USB χρησιμοποιώντας τη SoftCard. Έτσι, εάν χρησιμοποιείτε αυτές τις λειτουργίες, δεν μπορείτε επίσης να χρησιμοποιήσετε TX και RX για ψηφιακή είσοδο ή έξοδο. Μπορείτε να χρησιμοποιήσετε την ενσωματωμένη σειριακή οθόνη του περιβάλλοντος CloudX για επικοινωνία με μια πλακέτα CloudX. Κάντε κλικ στο κουμπί σειριακής οθόνης στη γραμμή εργαλείων και επιλέξτε τον ίδιο ρυθμό baud που χρησιμοποιείται στην παράμετρο που καλείται στο serialBegin ().

2. Εντοπισμός σφαλμάτων

Ο εντοπισμός σφαλμάτων σημαίνει απλώς τον εντοπισμό και την αφαίρεση σφαλμάτων από (υλικό ή λογισμικό υπολογιστή). Ο εντοπισμός σφαλμάτων περιλαμβάνει τον εντοπισμό και τη διόρθωση σφαλμάτων κώδικα σε ένα πρόγραμμα υπολογιστή. Η εντοπισμός σφαλμάτων είναι μέρος της διαδικασίας δοκιμής λογισμικού και αποτελεί αναπόσπαστο μέρος ολόκληρου του κύκλου ζωής ανάπτυξης λογισμικού. Ας πάρουμε για παράδειγμα ότι ο κωδικός σας έχει μεταγλωττιστεί με επιτυχία και δοκιμάζετε το υλικό σας και δεν λειτουργεί όπως αναμενόταν, αν και υπάρχουν πολλοί τρόποι για να διορθώσετε τον κωδικό σας. ένας απλός και αποτελεσματικός τρόπος εντοπισμού σφαλμάτων είναι μέσω της χρήσης σειριακού εντοπισμού σφαλμάτων. Το CloudX IDE δημιουργεί 2 τύπους αρχείων σε επιτυχημένη συλλογή, αρχείο HEX και COFF. Το αρχείο HEX είναι αυστηρά κωδικός μηχανής που είναι αυτό που εκκινείται στον πίνακα για εκτέλεση στον πραγματικό κόσμο, αλλά μπορεί επίσης να εκτελεστεί σε λογισμικά προσομοίωσης υπολογιστή σας όπως το Proteus Isis, ενώ το αρχείο COFF είναι ευανάγνωστο και εκτελέσιμο σε λογισμικά προσομοίωσης υπολογιστή (Proteus Isis) Το Για αυτό το πεδίο θα εξετάσουμε δύο βασικούς τύπους εντοπισμού σφαλμάτων σε σειριακό πρωτόκολλο,

1. Soft Serial Debugging:

Σε αυτή τη μέθοδο, κάθε δοκιμή και εντοπισμός σφαλμάτων πραγματοποιείται στον υπολογιστή μέσω κάποιου χρήσιμου λογισμικού όπως το Proteus ISIS. Επειδή το CloudX δημιουργεί βασικά αρχείο COFF, σας συνιστώ να το χρησιμοποιείτε για προσομοίωση Η / Υ γιατί με αυτό μπορείτε βασικά να περπατήσετε ανάμεσα σε γραμμές κωδικών και να διαπιστώσετε από πού προέρχεται το πρόβλημα και εάν ο κώδικάς σας πρέπει να εκτελείται χωρίς βήμα, χρησιμοποιώντας εικονικό τελικό από το "εικονικό" εργαλείο λειτουργίας οργάνου ", μπορείτε πάντα να γνωρίζετε σε ποια γραμμή λειτουργεί ο ελεγκτής ανά πάσα στιγμή. ας ρίξουμε μια ματιά σε αυτό το παράδειγμα κώδικα,

Βήμα 1:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

/*

* Αρχείο: newmain.c

* Συγγραφέας: OGBOYE GODWIN * * Δημιουργήθηκε στις 28 Ιουνίου 2018, 10:15 ΠΜ */

#περιλαμβάνω

#περιλαμβάνω

/* θα κάνουμε

κόκκινο pin1 πράσινο pin2 κίτρινο pin3 *κουμπί pin4 */ char *tell = "hmmm, I have been touch"? setup () {pinMode (1, OUTPUT); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, ΕΙΣΟΔΟΣ); Serial_begin (9600); βρόχος () {while (! readPin (4)); Serial_writeText (πείτε); Serial_writeText ("…. Μετακίνηση στο κόκκινο"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect (1, HIGH); καθυστερήσεις (200)? // προσπαθήστε να αφαιρέσετε το σχολιασμό κάθε καθυστέρησης και δείτε τι συμβαίνει // στη συνέχεια αντικαταστήστε τα (σίγουρα θα σας αρέσει!). ενώ (! readPin (4)); Serial_writeText (πείτε); Serial_writeText ("…. Μετακίνηση σε πράσινο"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect (2, HIGH); καθυστερήσεις (200)? // προσπαθήστε να αφαιρέσετε το σχολιασμό κάθε καθυστέρησης και δείτε τι συμβαίνει // στη συνέχεια αντικαταστήστε τα (σίγουρα θα σας αρέσει!).

ενώ (! readPin (4));

Serial_writeText (πείτε); Serial_writeText ("…. Μετακίνηση στο κίτρινο"); Serial_write (0x0D); portWrite (1, 0x00); pinSelect (3, HIGH); καθυστερήσεις (200)? // δοκιμάστε να αφαιρέσετε το σχολιασμό όλης της καθυστέρησης και δείτε τι συμβαίνει // στη συνέχεια αντικαταστήστε τα (σίγουρα θα σας αρέσει!). }}

με αυτό μπορείτε να δείτε πόσο σημαντικός είναι ο σειριακός εντοπισμός σφαλμάτων εάν αφαιρέσετε τις καθυστερήσεις. αν το κάνατε αυτό, θα είχατε δει πόσο ενοχλητικό μπορεί να προκαλέσει αυτός ο απλός κώδικας εάν εκτελεστεί στον πραγματικό κόσμο χωρίς αυτές τις καθυστερήσεις.

Βήμα 2:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

2. Αποσφαλμάτωση υλικού:

Σε αυτήν τη μέθοδο, κάθε δοκιμή και εντοπισμός σφαλμάτων πραγματοποιείται με την προσάρτηση της πλακέτας πρωτότυπου CloudX στον υπολογιστή με τη χρήση της softCard και τη χρήση είτε του σειριακού τερματικού του CloudX IDE (συνιστάται) είτε κάποιου άλλου χρήσιμου λογισμικού όπως το Proteus ISIS compim, realTerm κ.λπ. Δημιουργήστε COFF το αρχείο δεν μπορεί να χρησιμοποιηθεί εδώ επειδή αυτή η μέθοδος απαιτεί εκκίνηση HEX στο υλικό, προτείνω να το χρησιμοποιήσετε για την softcard CloudX. Λάβετε υπόψη ότι ο κωδικός σας εκτελείται χωρίς βήμα, ώστε να μπορείτε πάντα να γνωρίζετε πού είναι η γραμμή που εκτελείται ο ελεγκτής ανά πάσα στιγμή από τη σειριακή έξοδο. ας ρίξουμε μια ματιά σε αυτόν τον κώδικα με το ίδιο παράδειγμα που αναφέρθηκε παραπάνω, ρυθμίστε το υλικό σας για να μοιάζει με το κόκκινο LED --------- στο pin1 πράσινο LED --------- pin2 κίτρινο LED- ------- κουμπί pin3 --------- pin4

Βήμα 3:

Εικόνα
Εικόνα

βήματα

1. Χρησιμοποιήστε τον ίδιο κωδικό με τον παραπάνω

2. Εκκίνηση στον πίνακα σας

3. Ξεκινήστε το σειριακό τερματικό CloudX κάνοντας κλικ στο κουμπί "σειριακό" στη γραμμή εργαλείων

4. επιλέξτε την επιθυμητή θύρα και ρυθμό baud (9600 σε αυτό το σεμινάριο)

5. ξεκινήστε το τερματικό κάνοντας κλικ στη σύνδεση (αποσυνδέστε εάν θέλετε να κλείσετε)

6. με τη θύρα ανοιχτή/συνδεδεμένη, πατήστε στιγμιαία το κουμπί κατά βούληση και θα δείτε την σειριακή έξοδο να εμφανίζεται στα παράθυρα των τερματικών. Σημειώστε ότι εάν έχετε καθυστερήσεις στον κώδικα, θα έχετε πολλές γραμμές σειριακής εξόδου που τρέχουν τόσο γρήγορα χωρίς έλεγχο πριν αφαιρέσετε τα χέρια σας από το κουμπί. Εάν για οποιονδήποτε λόγο στον κώδικά σας, έχετε παρόμοιο ή παρόμοιο πρόβλημα, μπορείτε πάντα να χρησιμοποιήσετε αυτήν τη μέθοδο για εντοπισμό σφαλμάτων.

Συνιστάται: