Saya telah melihat dua case sekarang dengan dsPIC 30F4013 di mana controller reset karena jebakan yang tidak ditentukan. Mengapa jebakan-jebakan ini dibesarkan di tempat pertama masih merupakan misteri, tapi itu bukan pertanyaan langsung saya. Saya mulai berpikir itu akan menjadi praktik pemrograman yang baik untuk selalu mendefinisikan semua perangkap, bahkan jika perangkap tidak pernah terjadi, jadi saya mendapatkan setidaknya pesan kesalahan yang jelas alih-alih pengaturan ulang acak. Apakah ini praktik standar yang tidak saya sadari? Apakah ada kerugian pada praktik ini yang harus saya pertimbangkan?
microcontroller
interrupts
reset
firmware
best-practice
Stephen Collings
sumber
sumber
Jawaban:
Aturan informal saya adalah:
Meskipun tanpa aturan itu, lembar data secara eksplisit menjawab pertanyaan Anda:
( Sumber , bagian 8.3, catatan pertama)
Mengingat Anda tidak dapat menutupi perangkap, maka Anda harus menanganinya. Jika Anda tidak ingin berurusan dengan perangkap dengan cara tertentu, metode yang tepat adalah dengan menjalankan
RESET
instruksi.sumber
Ya, itu ide yang bagus - satu-satunya downside adalah sedikit ukuran kode tambahan, dan Anda harus memutuskan apa yang harus dilakukan dengan perangkap (memancarkan pesan pada port serial? Nyalakan lampu "GAGAL"? Diam-diam reboot? Dll )
sumber