Arduino Bootloader

9

Saya sangat baru di dunia embedded. Saya telah sampai sekarang hanya bekerja pada S / W

Adakah yang bisa menjelaskan tentang penggunaan Bootloader Arduino? Saya ingin Arduino melakukan beberapa matematika sederhana menggunakan beberapa komponen tambahan yang harus dimasukkan ke dalam chip.

Apakah saya perlu bootloader?

Johnny
sumber

Jawaban:

10

Arduino pada dasarnya hanyalah mikrokontroler Atmel AVR, dengan elektronik pendukung yang cukup untuk memungkinkannya beroperasi. AVR memiliki blitz internal untuk memungkinkannya mematikan program, tetapi untuk memprogram chip AVR secara langsung Anda memerlukan alat seperti STK-500 untuk melakukan pekerjaan. Arduino mengatasi ini dengan juga memiliki antarmuka USB kecil di papan tulis, dan kode boot-loader Arduino sudah ada dalam chip. Ini memungkinkan aplikasi sisi PC untuk mentransfer program Anda ke perangkat, dan pada dasarnya, memilikinya flash itu sendiri.

Jadi, intinya, jika Anda mendapatkan Arduino, boot-loader sudah ada di sana, dan melakukan tugasnya secara otomatis. Anda kode program Anda di PC, tekan tombol 'unggah' pada IDE, dan dalam beberapa saat program Anda berjalan di Arduino. Boot-loader melakukan tugasnya dengan sepenuhnya transparan.

fwiw, saya pribadi memiliki Arduino 2009, dan STK-500 dan dapat melakukan pemrograman on-the-metal pada AVR, tetapi tidak menemukan perlu untuk mem-bypass bootloader Arduino.

JustJeff
sumber
Saya ingin melihat info lebih lanjut tentang menggunakan Arduino untuk memprogram AVR.
Greg
@Greg sebenarnya ada sketsa yang didukung Arduino untuk duemilanove untuk mem-flash bootloader ke atmega328 kosong. Jelas, fungsi ini dapat diperluas untuk mem-flash program apa saja ke atmega328 kosong. Anda tidak memerlukan konektor ISP. Pada dasarnya Anda mengubah arduino mikro Anda menjadi ISP.
NickHalden
5

Arduino membutuhkan bootloader untuk memprogram sketsa Anda melalui serial / USB. Tanpanya, Anda memerlukan AVR In-System-Programmer (ISP) untuk memprogram memori flash dalam chip AVR secara langsung.

Jika Anda membeli Arduino, itu akan datang dengan bootloader yang sudah dibakar ke dalam chip AVR. Anda hanya perlu khawatir tentang hal itu jika Anda membangun papan Anda sendiri.

Ini akan membantu: Saya tidak mendapatkan konsep Arduino

Toby Jaffey
sumber
4

Saya akan memberikan jawaban yang sedikit lebih teoretis; jawaban lain cukup baik dari sudut pandang praktis. Bootloader adalah kode yang berada di segmen khusus memori flash. Kode yang berada di segmen itu diizinkan untuk menjalankan Instruksi Pemrograman Mandiri, memungkinkan untuk memodifikasi memori flash (yaitu di mana kode pengguna berada) tanpa pemrogram konvensional (yaitu ISP Pemrograman Dalam Sistem atau Pemrograman Tegangan Tinggi HVP) seperti STK500 atau AVRISP mkII.

Pada prinsipnya, UART Recieve Data Interrupt Service Routine (ISR) membuat panggilan fungsi ke dalam kode bootloader yang menyalin gambar program yang dikirim secara seri ke ruang program pengguna dalam memori flash. Saat startup, program apa pun yang ada di chip mulai berjalan, tetapi jika data serial yang terbentuk dengan tepat diterima sejak awal, AVR masuk ke semacam mode pemrograman mandiri. Ada beberapa logika dalam UART ISR yang hanya mengurangi kode bootloader untuk waktu singkat selama startup. Detailnya sedikit lebih rumit dari itu, tapi itu ide dasarnya.

Keindahan dari ini adalah Anda dapat membeli Arduino, dan tidak ada yang lain, mengunduh Lingkungan Pengembangan Terpadu (IDE) gratis, dan mulai menulis Sketsa Arduino (program), dan mengunduhnya ke AVR begitu saja, melalui USB tidak kurang terima kasih ke chip IC FTDI kecil mewah yang terintegrasi ke dalam papan Arduino.

vicatcu
sumber