Saya diperintahkan untuk "membakar bootloader" ke Arduino saya untuk memperbaiki kesalahan yang saya dapatkan. Bagaimana saya bisa melakukan ini? (Dan apa sebenarnya bootloader itu?)
Saya diperintahkan untuk "membakar bootloader" ke Arduino saya untuk memperbaiki kesalahan yang saya dapatkan. Bagaimana saya bisa melakukan ini? (Dan apa sebenarnya bootloader itu?)
Jawaban:
Bootloader adalah program kecil yang (hampir) selalu menggunakan Arduino. Ia mengelola mengunggah dan memulai sketsa yang Anda buat, dan mengedipkan pin 13 LED setiap kali papan disetel ulang.
Untuk membakar bootloader:
Tools ► Board ►
dalam IDE. Periksa ulang ini meskipun Anda dapat mengunggah program dengan benar; mengunggah tidak selalu membutuhkan papan yang tepat.Tools ► Programmer ►
.Tools ► Burn Bootloader
, dan tunggu. Seharusnya tidak lebih dari satu menit, dan seringkali hanya membutuhkan beberapa detik.Sumber:
{line 1} or other dedicated ISP programmer.
Dan apa sebenarnya bootloader itu?
Bootloader adalah sepotong kecil kode yang berada di bagian "tinggi" dari memori program. Biasanya itu tidak terhapus saat Anda mengunggah sketsa baru. Tujuannya agar diaktifkan segera setelah reset (sekering dikonfigurasikan untuk memulai kode pada alamat bootloader daripada alamat 0x0000). Bootloader akan menunggu dalam waktu singkat (seperti satu detik) untuk melihat apakah data "pemrograman" masuk pada port serial.
Jika demikian, ia membaca data itu, dan menerjemahkannya untuk memprogram ulang sisa memori flash. Bekerja bersama dengan program pengunggahan (biasanya avrdude) sketsa baru dikirim melalui port serial. Bootloader menghapus halaman memori flash, dan menggantinya dengan kode baru. Setelah selesai, ia mengeksekusi kode baru.
Jika tidak ada instruksi yang datang, bootloader melompat ke alamat 0x0000 untuk menjalankan sketsa yang ada di papan tulis.
Metode alternatif untuk memprogram bootloader adalah dengan menggunakan sketsa yang saya tulis beberapa waktu lalu yang berjalan pada:
Papan "pemrograman" menjalankan sketsa yang berisi bootloader untuk sejumlah papan yang dikodekan ke dalamnya. Anda menghubungkan papan pemrograman ke papan target (papan menginginkan bootloader) dengan 6 kabel kait seperti yang ditunjukkan.
Foto itu menggambarkan satu Uno memprogram yang lain.
Anda menjalankan sketsa (beroperasi melalui Serial Monitor untuk memberikannya perintah). Pertama mengidentifikasi chip target:
Atmega chip programmer.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...
Type 'G' to program the chip with the bootloader ...
Anda menekan G untuk memprogramnya.
Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Done.
Type 'C' when ready to continue with another chip ...
Untuk Uno ini membutuhkan satu detik. Untuk memprogram Mega2560 membutuhkan waktu 3 detik.
Instruksi lengkap di programmer bootmeer Atmega
Kode dapat diunduh dari Github: nickgammon / arduino_sketches