Ketika Leonardo diperkenalkan, saya pikir, saya telah membaca beberapa artikel tentang berhati-hati untuk melakukan beberapa hal, yang dapat menyebabkannya tidak memuat sketsa baru lagi, jadi kita harus menulis ulang bootloader. Karena saya berencana untuk menggunakan opsi hemat daya, misalnya untuk menonaktifkan komponen perangkat keras yang tidak digunakan seperti port USB, saya takut melakukan sesuatu yang salah.
Satu kelezatan Leonardo yang saya temukan sejauh ini:
- jika interupsi dinonaktifkan, mengunggah sketsa baru gagal kecuali satu menekan tombol Reset segera setelah Arduino IDE menampilkan "Mengunggah ..."
Hal-hal apa (kecuali yang terkait dengan perangkat keras yang biasa seperti menghubungkan pin yang dikonfigurasi keluaran ke potensi tetap) yang dapat merusak controller atau mengharuskan untuk merefleksikan Leonardo dengan bootloader baru?
power
arduino-leonardo
Thomas S.
sumber
sumber
Jawaban:
Jika Anda mengunggah program yang mengubah kecepatan inti USB, program itu akan hampir mati. Apa yang akan terjadi adalah ini:
Masalahnya di sini adalah Anda tidak hanya harus menekan reset ke program, setelah reset Anda harus dengan cepat memilih port com yang tepat dan kemudian mengunggah sebelum program dimulai.
Redbearlab Blend Micro membutuhkan kecepatan inti USB yang akan ditetapkan dalam program pengguna. Dalam instruksi pengaturannya ada langkah untuk mengedit main.cpp Arduino dan menambahkan bagian untuk melakukannya. Jika langkah ini terlewatkan, masalah di atas terjadi.
sumber
Saya berhasil brickwall sebuah ATMega128RFA1. Bootloader, dan perangkat lunak yang saya unggah di dalamnya, berfungsi dengan baik. Tetapi tidak mungkin untuk menghapus / menulis ROM.
Setelah memeriksa apa yang terjadi, saya menemukan dalam lembar data bahwa beberapa sekering pada inti AVR dimaksudkan untuk melindungi penulisan yang tidak disengaja pada ROM. Semacam sekering keamanan.
Saya tidak pernah menemukan bug yang ditulis dalam byte ini (karena itu adalah program yang sangat besar dan kami adalah 3 orang yang terlibat dalam pengkodean) tapi ya, kami hanya meniup sekering dan kehilangan MCU karena bug.
Adapun leonardo, beberapa hal bisa terjadi, tetapi tidak ada yang bisa menutupi papan Anda kecuali Anda meledakkan salah satu dari sekering perlindungan ini.
sumber
Dimungkinkan, dengan beberapa kode yang sangat pintar , untuk mengeksploitasi bootloader untuk menimpa dirinya sendiri.
Kutipan:
Jadi pada dasarnya, Anda dapat melakukan beberapa pemrograman mewah, dan membuat bootloader untuk menyemprot sendiri, menjadikan MCU tidak berguna tanpa programmer yang berdedikasi.
sumber
Yang saya tahu adalah membuat Leonard bertindak seperti mouse USB yang mengepak di mana-mana dan mengetik tombol acak sehingga Anda tidak dapat memprogram ulang tanpa melakukan semacam trik untuk menyiasatinya. Tetapi mereka menyebutkan ini di api docs.
sumber