Pembuatan PCB Ketepatan, PCB Frekuensi Tinggi, PCB Berkelajuan Tinggi, PCB Berbilang Lapisan dan Pemasangan PCB.
Kilang perkhidmatan tersuai PCB & PCBA yang paling boleh dipercayai.
Teknik PCB

Teknik PCB - Bagaimana mencari cacat perisian dalam proses desain PCB

Teknik PCB

Teknik PCB - Bagaimana mencari cacat perisian dalam proses desain PCB

Bagaimana mencari cacat perisian dalam proses desain PCB

2021-10-23
View:412
Author:Downs

Bagaimana untuk mengelakkan ralat perisian tersembunyi tetapi biasa dalam proses desain PCB, dan memperkenalkan beberapa teknik untuk membantu jurutera mencari ralat tersembunyi dalam perisian salinan PCB (www.pcbwork.net). Kebanyakan projek pembangunan perisian bergantung pada kombinasi pemeriksaan kod, ujian struktur dan ujian fungsi untuk mengenalpasti cacat perisian. Walaupun teknik tradisional ini sangat penting dan dapat mencari kebanyakan masalah perisian, ia tidak dapat mengesan banyak ralat umum dalam sistem kompleks hari ini.

Ujian struktur atau ujian kotak putih boleh mencari logik, aliran kawalan, kiraan dan ralat data dalam kod. Ujian ini memerlukan paparan ringkasan kerja dalaman perisian (oleh itu nama \"kotak putih\" atau \"kotak kaca\") untuk memahami perincian struktur perisian. Ia memeriksa setiap ungkapan syarat, operasi matematik, input dan output. Kerana banyak perincian yang perlu diuji, ujian struktur memeriksa satu unit perisian pada masa, biasanya fungsi atau kelas.

Revisi kod juga menggunakan teknik kompleks yang sama dengan kegagalan pelaksanaan dan penemuan masalah potensi. Seperti ujian kotak putih, ulasan biasanya dilakukan untuk setiap unit perisian, kerana proses ulasan yang berkesan memerlukan pemeriksaan pusat dan terperinci.

Tidak seperti kajian dan ujian kotak putih, ujian fungsi atau ujian kotak hitam menganggap bahawa tiada apa yang diketahui tentang pelaksanaan perisian. Ia menguji output yang dipandu oleh input terkawal. Ujian fungsional terdiri daripada prosedur ujian ditulis oleh penguji atau pembangun. Mereka nyatakan output program dijangka yang sepadan dengan set input program khusus. Selepas ujian dijalankan, pengujian membandingkan output sebenar dengan output dijangka untuk mencari masalah. Ujian kotak hitam dapat mencari keperluan yang tidak dipenuhi, masalah antaramuka, masalah prestasi, dan ralat dalam fungsi yang paling biasa digunakan program.

papan pcb

Walaupun menggabungkan teknik ini dapat mencari kebanyakan ralat tersembunyi dalam program perisian tertentu, mereka juga mempunyai keterangan. Revisi kod dan ujian kotak putih hanya sasarkan sebahagian kecil kod pada satu masa, mengabaikan sisa sistem. Ujian kotak hitam biasanya menjaga sistem sebagai keseluruhan, mengabaikan perincian pelaksanaan. Beberapa masalah penting hanya boleh ditemui dengan fokus pada perincian interaksi mereka di seluruh sistem; kaedah tradisional tidak dapat mengenalpasti masalah ini dengan pasti. Sistem perisian mesti disemak sebagai keseluruhan untuk mencari sebab khusus masalah khusus. Kerana biasanya mustahil untuk menganalisis secara teliti setiap perincian dalam program dan interaksinya dengan semua bahagian lain kod, analisis patut ditujukan kepada aspek khusus program yang diketahui untuk menyebabkan masalah.

Artikel ini akan mengeksplorasi tiga kawasan masalah potensi:

* Stack overflow

* Keadaan persaingan

* Deadlock

Pembaca boleh baca bahagian kedua artikel ini secara online, yang akan mengeksplorasi isu-isu berikut:

* Masa Masa

* Keadaan masuk semula

Semua masalah di atas adalah cukup umum dalam sistem yang menggunakan teknologi desain masa-realiti berbilang-tugas.

Aliran tumpukan

Pemproses menggunakan tumpukan untuk menyimpan pembolehubah sementara, lulus parameter ke fungsi yang dipanggil, simpan benang "keadaan", dan sebagainya. Jika sistem tidak menggunakan memori maya (dengan kata lain, ia tidak dapat memindahkan halaman memori ke cakera untuk membebaskan ruang memori untuk penggunaan lain), tumpukan akan ditetapkan ke saiz produk apabila ia meninggalkan kilang. Jika untuk sebab tertentu tumpukan keluar dari julat yang diberikan oleh pemrogram, program akan menjadi tidak pasti. Keketidakstabilan ini boleh menyebabkan kegagalan sistem serius. Oleh itu, penting untuk memastikan bahawa sistem boleh mengalokasi cukup tumpukan dalam kes terburuk.

Satu-satunya cara untuk memastikan bahawa overflow tumpukan tidak pernah berlaku adalah untuk menganalisis kod, menentukan penggunaan tumpukan maksimum program dalam semua keadaan yang mungkin, dan kemudian semak sama ada tumpukan cukup dialokasi. Ujian tidak mungkin akan memicu kombinasi khusus input segera dan menyebabkan skenario kes terburuk dalam sistem.

Konsep analisis kedalaman tumpukan adalah relatif mudah:

1. Cipta pepohon panggilan untuk setiap benang independen.

2. Tentukan penggunaan tumpukan setiap fungsi dalam pokok panggilan.

3. Semak setiap pokok panggilan untuk menentukan laluan panggilan mana dari akar pokok ke "daun" luar yang diperlukan yang paling tumpukan.

4. Tambah penggunaan stack maksimum bagi setiap pepohon panggilan benang independen.

5. Tentukan penggunaan stack maksimum setiap rutin perkhidmatan gangguan (ISR) dalam setiap aras keutamaan gangguan dan kira jumlah. Namun, jika ISR sendiri tidak mempunyai tumpukan dan menggunakan tumpukan benang terganggu, bilangan maksimum tumpukan yang digunakan oleh ISR patut ditambah ke tumpukan setiap benang.

6. Untuk setiap keutamaan dalam bentangan dan desain PCB, tambah bilangan tumpuan yang digunakan untuk menyimpan keadaan pemproses apabila gangguan berlaku.

7. Jika anda menggunakan RTOS, tambah bilangan maksimum tumpuan yang diperlukan untuk penggunaan dalaman RTOS sendiri (berbeza dari panggilan sistem disebabkan oleh kod aplikasi, yang termasuk dalam langkah 2).

Selain itu, ada dua perkara penting untuk dipertimbangkan. Pertama, pepohon panggilan dibina hanya dari kod sumber bahasa tahap tinggi mungkin tidak lengkap. Kebanyakan kompiler menggunakan perpustakaan-masa berjalan untuk optimumkan tugas komputer umum, seperti pendaraban dan pembahagian integer-nilai-besar, operasi titik-mengapung, dll. Panggilan ini hanya terlihat dalam bahasa kumpulan yang dijana oleh kompiler. Fungsi perpustakaan masa berjalan sendiri mungkin menggunakan banyak ruang tumpukan, dan mereka mesti disertai dalam analisis. Jika anda menggunakan bahasa C++++, semua jenis fungsi (kaedah) berikut juga mesti disertai dalam pokok panggilan: strukturer, pemusnah, operator yang dimuatkan berlebihan, struktur salin, dan fungsi konversi. Semua penunjuk fungsi juga mesti dihurai, dan fungsi yang mereka panggil termasuk dalam analisis.