Skrip Kompilasi (AVR-GCC) dan Uploader (AVRDUDE) Untuk Proyek AVR Single-File


Proses mengubah kode program bahasa C menjadi bahasa mesin memerlukan beberapa perintah. Nah, biar gak bolak-balik ngetik perintah yang sama atau pencet tombol panah atas untuk scrolling perintah pada command prompt selama mengerjakan program mikrokontroler, maka sebaiknya kita membuat batchfile sederhana untuk meningkatkan efisiensi kerja.

Sebagai gambaran, berikut adalah beberapa perintah yang saya gunakan pada proses kompilasi kode program hingga proses upload kode mesin ke mikrokontroler. Sebagai contoh, kode program yang saya kompilasi adalah ser-4rel.c untuk mikrokontroler ATtiny2313.

  1. Kode program bahasa C menjadi Object
    avr-gcc -g -Os -mmcu=attiny2313 -c ser-4rel.c
  2. Object menjadi ELF
    avr-gcc -g -mmcu=attiny2313 -o ser-4rel.elf ser-4rel.o
  3. ELF menjadi HEX
    avr-objcopy -j .text -j .data -O ihex ser-4rel.elf ser-4rel.hex
  4. Upload ke mikrokontroler
    avrdude -cavrispmkii -pattiny2313 -e -Uflash:w:ser-4rel.hex:i

cu.bat

Untuk mengotomasi baris-baris perintah di atas, maka kita dapat membuat sebuah skrip shell sederhana untuk melakukan kompilasi dan upload file hasil kompilasi ke mikrokontroler. Skrip ini saya beri nama cu.bat (compile-upload). :D

Seperti saya sebutkan di atas, skrip ini sederhana saja dan hanya bisa digunakan untuk melakukan kompilasi untuk proyek program dengan satu file program saja (single-file project). Jika program menggunakan file library, maka harus dimodifikasi.

Nah, dari baris-baris perintah di atas, ada beberapa variabel penting yang perlu dijadikan parameter dari skrip cu.bat yakni:

  • tipe mikrokontroler (pada contoh di atas: attiny2313)
  • nama file kode program (pada contoh di atas: ser-4rel.c)
  • tipe programmer (uploader) yang digunakan (pada contoh di atas:avrispmkii)

Untuk itu kita tentukan saja bahwa parameter-parameter skrip cu.bat adalah:

  • %1 = tipe mikrokontroler
  • %2 = tipe programmer
  • %3 = kode program bahasa C

Berikut adalah skrip cu.bat (compile & upload):

echo off
echo 1. Compile C to Object
avr-gcc -g -Os -mmcu=%1 -c %3.c
echo 2. Link Object to ELF
avr-gcc -g -mmcu=%1 -o %3.elf %3.o
echo 3. Create HEX from ELF
avr-objcopy -j .text -j .data -O ihex %3.elf %3.hex
echo 4. Upload program
avrdude -p%1 -c%2 -e -Uflash:w:%3.hex:i
echo 5. Done.

 

Contoh Penggunaan

cu atmega8 usbasp blink

Berikut adalah screenshot hasil prosesnya:

cu.bat

Trik

Program AVRDUDE.EXE bawaan WinAVR-2010xx versinya masih 5.1 dan mengandung ketidak-konsistenan parameter untuk tipe mikrokontroler dengan avr-gcc sehingga bisa menimbulkan kesalahan proses.

Solusinya: copy AVRDUDE.EXE yang lebih baru. Caranya: download program IDE Arduino  terbaru atau minimal versi 1.0.5. Kemudian copy AVRDUDE.EXE bawaan program Arduino ke WinAVR\bin.

AVRDUDE.EXE bawaan Arduino bisa dicari di folder Arduino: ..\hardware\tools\avr\bin

Semoga bermanfaat.

Bagi Anda pengguna linux, skrip cu dapat dibaca di halaman ini:

Skrip Kompilasi dan Uploader Versi Linux

Selamat belajar.

🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s