Advertisement

Apa itu Bootloader pada Mikrokontroler, dan Mengapa Diperlukan?

0 222

Ketika seorang pengguna menyalakan komputer  mereka, biasanya  sebelum tampilan Sistem Operasi muncul di layar monitor. Biasanya akan terdapat tahap booting, dengan tampilan teks dan logo dari pabrikan CPU. Ya, Itu adalah bootloader, sebuah program yang dijalankan pertama kali saat mesin dinyalakan sebelum program utama dijalankan.

Gambar 1. Pada komputer bootloader dipanggil sebelum sistem operasi dijalankan

Dari sini tentu pembaca mulai paham tentang apa itu bootloader di dalam dunia sistem embedded. Sebuah bootloader memperkaya kemampuan mikrokontroler dan membuatnya menjadi perangkat yang mampu memprogram dirinya sendiri.

Salah satu fungsi dari bootloader misalnya adalah pada kasus beragamnya  jenis mikrokontroler yang yang masing – masing terkadang memiliki protokol yang berbeda-beda untuk dapat diprogram, sehingga memerlukan cara dan teknik pemrograman berbeda. Misalnya, antara mikrokontroler ATMega dengan STM32 jelas memiliki perangkat downloader dan software yang berbeda dalam memprogram.

Bagaimana jika seorang perancang membuat perangkat consumer berbasis mikrokontroler yang diproduksi masal (seperti modem MIFI, misalnya). Dan bagaimana bila kelak firmware  perangkat tersebut memiliki bug atau ingin  diupdate dengan versi terbaru?  Tentu tidak mungkin kan, mendatangi satu persatu ataupun meminta pengguna untuk mengupgrade firmware menggunakan perangkat tambahan yang tak lazim bagi orang awam ?

Dengan menggunakan bootloader, seorang pengguna tinggal mentransfer binary firmware melalui komunikasi serial pada USB misalnya. Bootloader yang menerima data binary tersebut kemudian menulis ulang (overwrite) ke Flash Memory.

Tentu pembaca pernah menemui suatu kasus dimana perangkat / gadget yang digunakan memerlukan upgrade firmware menggunakan  transfer data melalui kabel USB atau via TCP/IP. Nah, proses upgrade firmware  tersebut sebenarnya menggunakan “jasa” bootloader di balik layar

Adverstiment

Satu contoh lagi  penggunaan bootloader yang paling mudah adalah pada Arduino board yang berbasis mikrokontroler AVR dari Microchip.

Gambar 2. Arduino Uno menggunakan Bootloader untuk memprogram mikrokontrolernya

Saat arduino booting atau pada kondisi RESET, bootloader akan dipanggil untuk kali pertama. Fungsi bootloader ini adalah untuk menerima sketches dari Arduino IDE dan menuliskan instruksi binary ke Flash memory. Inilah yang menyebabkan mengapa  kala memprogram Arduino, programmer hanya perlu menghubungkan dengan komunikasi serial pada komputer dengan Arduino IDE (In Application Programming)

  • Bootloader pada Mikrokontroler STM32

Lalu bagaimana pada Mikrokontroler STM32. Misalnya pada Mikrokontroler STM32F446RE yang merupakan mikrokontroler pada development board Nucleo-64. Apakah memiliki bootloader? ya, mikrokontroler STM32F446RE memiliki bootloader internal (on-chip bootloader) yang tersimpan di System Memory (ROM) namun secara default, bootloader ini tidak akan dipanggil saat dinyalakan atau pada kondisi RESET. Diperlukan konfigurasi khusus pada pin – pin mikrokontroler, supaya bootloader dipanggil saat pertama kali mikrokontroler berada pada kondisi RESET.

Bootloader pada mikrokontroler  STM32  ini juga memiliki fungsi yang sama, yaitu untuk mengunggah atau mengunduh binary program dari mikrokontroler (in application programming)

Secara default, untuk memprogram mikrokontroler STM32 diperlukan rangkaian tambahan berupa ICDP (In Circuit Debugging and Programming) yang diberinama ST-LINK. Rangkaian ini disediakan  onboard di dalam development board Nucleo. Karena itulah fungsi bootloader onchip tidak diperlukan. Metode ini kemudian disebut  sebagai In System Programming (ISP)

Berbeda dengan board Arduino UNO yang dibahas sebelumnya, dimana tidak memiliki ICDP bawaan, Sehingga satu – satunya jalan untuk mengupload binary program adalah menggunakan In Application Programming pada bootloader

Gambar 3. Nucleo-F466RE

 

Adverstiment

  • Bootloader pada Mikrokontroler Tiva C Series

Sekarang mari ambil contoh lain sebagai perbandingan yaitu mikrokontroler EK-TM4C123GXL yang merupakan mikrokontroler pada Launchpad Tiva C Series dari Texas Instruments. Apakah memiliki bootloader di dalam mikrokontrolernya? Ya, mikrokontroler Tiva C Series juga memiliki bootloader bawaan yang diberinama TivaWare Bootloader di dalam ROM-nya.

Gambar 4. Launchpad Tiva C Series

Sama seperti Mikrokontroler STM32, secara default Tiva C Series saat berada pada kondisi RESET atau booting, bootloader bukan aplikasi yang kali pertama yang dipanggil. Diperlukan konfigurasi khusus pada pin -pin mikrokontrolernya untuk mengaktifkan bootloader tersebut.

Launchpad pada Tiva C Series juga memiliki rangkaian tambahan  ICDP yang dapat digunakan untuk memprogram sekaligus debugging, sehingga fungsi bootloader tidaklah diperlukan.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: