Isi kandungan:

Debugging Bersiri Dengan CloudX: 3 Langkah
Debugging Bersiri Dengan CloudX: 3 Langkah

Video: Debugging Bersiri Dengan CloudX: 3 Langkah

Video: Debugging Bersiri Dengan CloudX: 3 Langkah
Video: CARA MENGGUNAKAN SEMUA CHARAKTER DI STORY MODE !! NO CODEBREAKER !! - MKSM PS2 INDONESIA #Tutorial 2024, Jun
Anonim
Penyahpepijatan Bersiri dengan CloudX
Penyahpepijatan Bersiri dengan CloudX

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:

Imej
Imej
Imej
Imej

/*

* 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:

Imej
Imej
Imej
Imej
Imej
Imej

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:

Imej
Imej

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: