Sekilas tentang Bootloader
1. Apa sih fungsi bootloader pada arduino?
2. Bisa nggak, misal bikin arduino tanpa bootloader?
3. Kalau nggak pakai bootloader, Arduino tetep bisa jalan nggak?
4. Apa kita bisa bikin bootloader sendiri untuk arduino?
Anda bisa menjawab sendiri pertanyaan di atas setelah memahami cara kerja arduino berdasarkan ilustrasi berikut.
Jika kita mau memprogram IC mikrokontroller, sebut saja keluarga AT89Sxx, ATMega, atau PIC, maka kita butuh alat tambahan (hardware) yang biasa dikenal dengan istilah programmer atau downloader. Contoh downloader untuk AVR dan PIC seperti gambar di bawah ini.
Jika Anda menggunakan Arduino, Anda sudah tidak memerlukan downloader lagi. Anda bisa langsung memasang program pada IC melalui software Arduino IDE di komputer. Fungsi downloader sudah ditangani oleh bootloader dalam IC. Program yang dikirim komputer ke Arduino akan “ditangkap” dan disimpankan oleh bootloader dalam memori program yang masih kosong. Program mikrokontroller akan disimpan dalam memori flash atau flash memory. Setiap mikrokontroller dijalankan, biasanya alamat program yang pertama dieksekusi adalah alamat 0x0000 di flash memory.
Program bootloader biasanya dipasang pada alamat memori 0x0000 sehingga program tersebut menjadi program yang pertama kali dieksekusi.
Pada mikrokontroller biasa, yang bertugas menyimpan program adalah programmer yang berupa hardware. Sedangkan pada Arduino, proses penyimpanan program ke memori flash dikerjakan oleh bootloader. Lebih detailnya, bootloader memiliki cara kerja seperti berikut:
- Bootloader hanya dieksekusi saat Arduino dinyalakan. Oleh sebab itu, proses penyimpanan program oleh bootloader hanya bisa dilakukan sesaat setelah Arduino direset.
- Saat awal start, jika Arduino menerima kiriman program dari komputer. Maka tugas bootloader adalah menyimpan kiriman program tersebut pada memory flash yang tidak dipakai bootloader, misal alamat memory 0x00AB.
- Jika tidak ada kiriman program dari komputer, maka eksekusi program akan langsung lompat ke alamat 0x00AB untuk menjalankan program utama
Komentar
Posting Komentar