Isi kandungan:
Video: Debugging Bersiri Dengan CloudX: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Dalam projek ini, saya bertujuan untuk menjelaskan konsep penyahpepijatan melalui terminal bersiri. Tetapi pertama sebagai permulaan, mari kita menerangkan konsepnya melalui maknanya.
1. komunikasi bersiri
komunikasi bersiri adalah untuk komunikasi antara papan CloudX dan komputer atau peranti lain. Semua papan CloudX mempunyai sekurang-kurangnya satu port bersiri yang dilihat (juga dikenali sebagai UART atau USART): Serial. Ia berkomunikasi pada pin RX digital dan TX dengan perisian lain atau modul komunikasi bersiri (seperti gsm dan gps) seperti komputer melalui USB menggunakan SoftCard. Oleh itu, jika anda menggunakan fungsi ini, anda juga tidak dapat menggunakan TX dan RX untuk input atau output digital. Anda boleh menggunakan monitor bersiri persekitaran CloudX untuk berkomunikasi dengan papan CloudX. Klik butang monitor bersiri di bar alat dan pilih kadar baud yang sama yang digunakan dalam parameter yang dipanggil ke serialBegin ().
2. nyahpepijat
Menyahpepijat bermaksud mengenal pasti dan menghapus kesalahan dari (perkakasan atau perisian komputer). Penyahpepijatan melibatkan mencari dan membetulkan kesalahan kod dalam program komputer. Debugging adalah sebahagian daripada proses pengujian perisian dan merupakan bahagian yang tidak terpisahkan dari keseluruhan kitaran hidup pengembangan perisian. Mari kita ambil contoh bahawa kod anda berjaya disusun dan anda menguji perkakasan anda dan tidak berfungsi seperti yang diharapkan, walaupun terdapat banyak cara untuk menyahpepijat kod anda; cara yang mudah dan berkesan untuk men-debugnya adalah dengan menggunakan debugging bersiri. CloudX IDE menghasilkan 2 jenis fail pada penyusunan yang berjaya, fail HEX dan COFF. Fail HEX adalah kod mesin yang ketat yang dimuat ke dalam papan untuk dilaksanakan di dunia nyata tetapi juga dapat dijalankan pada perisian simulasi PC anda seperti Proteus Isis sementara fail COFF adalah format yang dapat dibaca yang dapat dilaksanakan pada perisian simulasi PC anda (Proteus Isis). Untuk skop ini, kami akan mempertimbangkan dua jenis debugging asas pada protokol bersiri,
1. Penyahpepijatan Bersiri Lembut:
Dalam kaedah ini, setiap ujian dan penyahpepijatan dilakukan di PC melalui beberapa perisian berguna seperti Proteus ISIS. Oleh kerana CloudX pada dasarnya menghasilkan fail COFF, saya cadangkan menggunakannya untuk simulasi PC kerana dengan asasnya anda dapat melangkah antara garis kod dan mencari dari mana masalahnya datang, dan jika kod anda mesti berjalan tanpa melangkah, menggunakan teminal maya dari "maya alat instrumen "alat, anda sentiasa dapat mengetahui di mana garisan pengawal berjalan pada masa tertentu. mari kita lihat contoh kod ini,
Langkah 1:
/*
* Fail: newmain.c
* Pengarang: OGBOYE GODWIN * * Dibuat pada 28 Jun 2018, 10:15 AM * /
#sertakan
#sertakan
/* Kita akan buat
pin merah1 pin hijau2 pin kuning3 * butang pin4 * / char * tell = "hmmm, saya telah sentuh"; persediaan () {pinMode (1, OUTPUT); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, INPUT); Serial_begin (9600); gelung () {sambil (! readPin (4)); Serial_writeText (beritahu); Serial_writeText ("…. Bergerak ke merah"); Serial_write (0x0D); portWrite (1, 0x00); pinPilih (1, TINGGI); kelewatan (200); // cuba hapus komen dari semua kelewatan dan lihat apa yang berlaku // kemudian gantikannya (anda pasti akan suka!). sambil (! readPin (4)); Serial_writeText (beritahu); Serial_writeText ("…. Bergerak ke hijau"); Serial_write (0x0D); portWrite (1, 0x00); pinPilih (2, TINGGI); kelewatan (200); // cuba hapus komen dari semua kelewatan dan lihat apa yang berlaku // kemudian gantikannya (anda pasti akan suka!).
sambil (! readPin (4));
Serial_writeText (beritahu); Serial_writeText ("…. Bergerak ke kuning"); Serial_write (0x0D); portWrite (1, 0x00); pinPilih (3, TINGGI); kelewatan (200); // cuba hapus komen dari semua kelewatan dan lihat apa yang berlaku // kemudian gantikannya (anda pasti suka!). }}
dengan ini anda dapat melihat betapa pentingnya penyahpepijatan Serial jika anda membuang kelewatan tersebut. jika anda melakukannya, anda akan melihat betapa menyusahkan kod mudah tersebut jika ia dilaksanakan di dunia nyata tanpa kelewatan tersebut.
Langkah 2:
2. Penyahpepijatan Perkakasan:
Dalam kaedah ini, setiap ujian dan debug dilakukan dengan melampirkan papan prototaip CloudX ke PC menggunakan softCard dan menggunakan sama ada terminal bersiri CloudX IDE (disyorkan) atau beberapa perisian berguna lain seperti Proteus ISIS compim, realTerm, dll. Hasilkan COFF fail tidak boleh digunakan di sini kerana kaedah ini menuntut HEX dimuat ke dalam perkakasan, saya cadangkan menggunakan ini untuk kad lunak CloudX. Perhatikan bahawa kod anda berjalan tanpa melangkah sehingga anda selalu dapat mengetahui di mana garis mana pengawal berjalan pada waktu tertentu dengan output bersiri. mari kita lihat kod ini contoh yang sama seperti yang disenaraikan di atas, tetapkan perkakasan anda untuk menjadi similer untuk menambang LED merah --------- ke pin1 LED hijau --------- pin2 LED kuning - ------- butang pin3 --------- pin4
Langkah 3:
langkah-langkah
1. Gunakan kod yang sama seperti di atas
2. boot ke papan anda
3. mulakan Terminal bersiri CloudX dengan mengklik butang "bersiri" di bar alat
4. pilih port dan kadar baud yang dikehendaki (9600 dalam tutorial ini)
5. mulakan terminal dengan mengklik sambung (putuskan sambungan jika anda mahu berhenti)
6. dengan port dibuka / disambungkan, tekan seketika butang sesuka hati dan anda akan melihat output bersiri yang ditunjukkan di tingkap terminal. Perhatikan bahawa jika anda mengalami kelewatan kod, anda akan mendapat banyak rangkaian output bersiri dengan begitu cepat tanpa kawalan sebelum anda melepaskan butang. Sekiranya atas sebab apa pun dalam kod anda, anda mempunyai masalah seperti itu, anda boleh menggunakan kaedah ini untuk membuat debug.
Disyorkan:
Raspberry PI 3 - Aktifkan Komunikasi Bersiri ke TtyAMA0 hingga BCM GPIO 14 dan GPIO 15: 9 Langkah
Raspberry PI 3 - Aktifkan Komunikasi Bersiri ke TtyAMA0 ke BCM GPIO 14 dan GPIO 15: Saya baru-baru ini berminat untuk mengaktifkan UART0 pada Raspberry Pi (3b) saya supaya saya dapat menghubungkannya terus ke peranti tahap isyarat RS-232 menggunakan standard 9 -pin d-sub penyambung tanpa perlu melalui penyesuai USB ke RS-232. Sebahagian daripada minat saya
Jam Berdiri Arduino 3.3V W / External 8 MHz Diprogramkan Dari Arduino Uno Melalui ICSP / ISP (dengan Pemantauan Bersiri!): 4 Langkah
Standalone Arduino 3.3V W / External 8 MHz Clock Diprogramkan Dari Arduino Uno Melalui ICSP / ISP (dengan Serial Monitoring!): Objektif: Untuk membina Arduino mandiri yang berjalan pada 3.3V dari jam luaran 8 MHz. Untuk memprogramkannya melalui ISP (juga dikenali sebagai ICSP, pengaturcaraan bersiri dalam litar) dari Arduino Uno (berjalan pada 5V) Untuk mengedit fail bootloader dan membakar
Baca dan Tulis Dari Port Bersiri Dengan Raspberry Pi Menggunakan Wemos: 5 Langkah
Baca dan Tulis Dari Port Bersiri Dengan Raspberry Pi Menggunakan Wemos: Berkomunikasi dengan Raspberry Pi menggunakan Wemos D1 mini R2
Mengemas Motor Servo Langkah Dengan Kawalan Bersiri Melalui Arduino Menggunakan Pencetak 3D - Langkah 4: 8
Merangkumi Step Servo Motor Dengan Serial Control Via Arduino Menggunakan 3D Printer - Pt4: Dalam video keempat siri Motor Step ini, kami akan menggunakan apa yang telah kami pelajari sebelumnya untuk membina motor servo stepper dengan kawalan melalui komunikasi bersiri dan nyata maklum balas kedudukan menggunakan pengekod resistif yang dipantau oleh Arduino. Dalam
Arduino Smartphone Com / Monitor Bersiri Melalui Bluetooth HC-05, HC-06: 4 Langkah (dengan Gambar)
Arduino Smartphone Coms / Serial Monitor Via Bluetooth HC-05, HC-06: Ini sangat berguna jika anda ingin menguji lakaran anda dalam persekitaran dunia nyata, jauh dari PC anda. Hasilnya ialah telefon pintar anda bertindak sama seperti monitor bersiri Arduino di PC anda. Modul Bluetooth HC-05 dan HC-06 tersedia