AVRA adalah sebuah program assembler untuk keluarga Mikrokontroler Atmel AVR yang kompatibel dengan AVRASM32 keluaran Atmel. Versi awal AVRA dirilis oleh John Anders Haugum. Setelah versi 0.7, AVRA dilanjutkan oleh Tobias Weber dan terakhir oleh Burkhard Arenfeld.
Berbeda dengan GAVRASM yang dibuat menggunakan Free Pascal, AVRA dibuat dengan bahasa C berstandar ANSI. Jadi eksekusinya lebih cepat dibandingkan GAVRASM. Sebagai perbandingan saja, pada versi Windows, ukuran file executable AVRA adalah 109 KB sementara GAVRASM 2,71 MB.
AVRA dirancang untuk dapat menggantikan AVRASM32, meskipun belum semua fitur yang dimiliki AVRASM32 telah diadopsikan ke AVRA, namun AVRA telah dapat digunakan dengan Atmel AVR Studio. AVRA memiliki beberapa perbedaan dengan AVRASM32, antara lain:
- AVRA mendukung beberapa direktif tambahan antara lain .define, .undef, .ifdef, .if, .else, .endif, .elif, .elseif, dan .warning.
- Tidak semua command line yang dimiliki AVRASM32 dimiliki oleh AVRA. Parameter -e untuk menentukan file EEPROM. AVRA menyimpan data EEPROM dalam file program.eep.hex, AVRA tidak mendukung format selain Intel Hex.
- AVRA memiliki beberapa fitur baru dalam penulisan makro (lebih fleksibel) sehingga semakin mendukung konsep penggunaan kembali kode program. Hal ini cocok untuk pengembangan library program.
- AVRA menciptakan file coff setiap kali proses assembling sukses. File coff ini dapat digunakan dengan program debugger seperti AVR Studio atau program debugger lain yang mendukung tipe file ini.
- AVRA memiliki Meta Tag untuk mencatat waktu kompilasi. Selain itu, Meta Tag ini juga dapat digunakan untuk membangkitkan serial number.
AVRA merupakan software open-source yang dapat dikompilasi pada sistem operasi apapun. Saat ini tersedia dua macam paket download yang tersedia di SourceForge.Net, yakni paket untuk Win32 dan paket Source Code. Dalam paket untuk Win32 disertakan juga source code-nya. Anda dapat mendownload keduanya melalui download link yang telah saya sediakan.
Perlu saya sampaikan sekali lagi bahwa AVRA dirancang untuk menggantikan AVRASM32 dengan beberapa fitur tambahan yang tidak dimiliki oleh AVRASM32. Dalam kerjanya, AVRA membutuhkan file-file include yang berisi definisi-definisi untuk masing-masing tipe AVR, namun bukan suatu keharusan. Kita dapat membuat sendiri file include atau cukup mendefinisikan register-register yang kita butuhkan saja dalam program kita. Akan tetapi, jauh lebih praktis untuk menggunakan file-file include dari Atmel AVRASM32.
Download
Instalasi AVRA
Pada sistem operasi Linux, lakukan langkah-langkah sebagai berikut:
- bunzip2 avra-1.2.3a-src.tar.bz2
- tar -xvf avra-1.2.3a-src.tar
- cd avra-1.2.3
- cp Makefiles/Makefile.linux Makefile
- make
- Sebagai root: make install
- Testing: avra –devices
- unzip avr000.zip
- mkdir /home/chandra/attiny2313
- mkdir /home/chandra/atmega8
- cp tn2313def.inc /home/chandra/attiny2313
- cp m8def.inc /home/chandra/atmega8
Perhatian! Subdirektori user (chandra) harus diganti dengan nama subdirektori user Anda sendiri.
Prosedur di atas akan menginstal AVRA dan membuat subdirektori attiny2313 dan atmega8 yang berisi file tn2313def.inc dan m8def.inc, respectively. Saya memisahkan file-file program untuk proyek mikrokontroler menggunakan ATtiny2313 dan ATmega8.
Anda boleh saja menempatkan file-file include di mana saja. Yang perlu diingat hanyalah, AVRA membutuhkan file-file include tersebut. Jadi pastikan saja path-nya pada direktif .include dalam source code benar.
Pada sistem operasi Windows, file distribusi avra-1.2.3-win32.zip menyediakan file executable AVRA.EXE pada subdirektori bin.
Jika Anda ingin menggantikan AVRASM32, maka hapus saja file AVRASM32.EXE dan ganti dengan AVRA.EXE, jangan lupa untuk me-rename lho ya… π
Tapi jika Anda seperti saya, lebih suka menulis program menggunakan fasilitas editor console semacam EDIT dan menjalankan proses kompilasi melalui command line, maka Anda bisa letakkan file AVRA.EXE di direktori utama C:\ atau di C:\AVRA beserta file-file include yang ada dalam file AVR000.ZIP.
Okey, sekian dulu. Lebih lanjut tentang AVRA kapan-kapan kita ngobrol lagi.
Selamat belajar!
π
Thanks atas sharingnya. Pake Assembler memang lebih efisien dari sisi speed dan size. Tapi pengembangan relatif sulit karena harus menghafal banyak kode. Kalo buat pemula mungkin lebih cocok pake C++, misalnya AVR-GCC.
Memang benar, memrogram AVR menggunakan bahasa C memang lebih mudah dibandingkan dengan menggunakan Assembler. Namun demikian, untuk pemula, saya lebih menyarankan untuk menggunakan Assembler diimbangi dengan pemahaman akan ‘mesin’ AVR itu sendiri. Setelah dirasakan cukup handal, maka dapat bermigrasi ke Basic, C, atau Pascal.
Thanks for your comments π
* Glek, nelen ludah *
eniwei, ini ngomongin apa seh ???? :((
Kursus privat ma aku deh, pasti gak nelen ludah lagi… π
Terima kasih atas kiriman PCB sistem minimumnya. Tapi saya belum mengerti menggunakan AVRASM32, boleh saya tahu link tutorialnya ada dimana
Kartika:
Sama-sama. Saya sarankan sebaiknya Kartika menggunakan GAVRASM saja karena tidak perlu mengikutsertakan file INCLUDE yang biasanya membingungkan pemula. Dengan GAVRASM, Kartika cukup mendefinisikan tipe AVR-nya saja: #define ATtiny2313, maka GAVRASM akan secara otomatis mengikutsertakan definisi-definisi untuk ATtiny2313 seperti pada AVRASM/AVRASM32.
Untuk GAVRASM, Kartika bisa mengakses postingan: https://telinks.wordpress.com/2009/01/06/gavrasm-gerds-avr-assembler/
Jika ingin lebih mudah lagi, Kartika bisa melihat contoh file template GAVRASM untuk ATtiny2313 di: https://telinks.wordpress.com/2009/01/07/attiny2313-template-file/
Untuk tutorial GAVRASM bisa Kartika lihat di: http://www.avr-asm-tutorial.net/avr_en/index.html
Demikian, Kartika. Selamat belajar! π
kak saya bru belajar menggunakan linux ubuntu 9.10…
dan saya sudah coba instruksi diatas di terminalnya..
waktu masuk dibaris perintah “Make install” lansung ada eror…
bagaimana solusiY…? cz saya ingimn belajar assembly di linux..
mohon bantuannya…
terimakash….
adh13:
Begini. Instruksi make install harus dijalankan sebagai root, jadi Mas Adie perlu memanggil perintah su dan memasukkan password root, kemudian baru menjalankan instruksi make install.
Untuk pemrograman assembly di Linux, Mas Adie bisa menggunakan Netwide Assembler. Silakan download di: http://www.nasm.us/pub/nasm/releasebuilds/2.08.01/
Selamat belajar! π
saya baru belajar avr attiny2313. menggunakan avr studio 4 bahasa assembly.sya membuat aplikasi voting pad, mengambil data dari 32 user. menggunakan rs485 di komputer menggunakan visual basic 6.0. saya program pd miconnya mengrimkan data 1 karakter.sya kesulitan dalam mengirimkan lebih dari 1 karakter.mhon bantuannya n klo bs kerjasamanya. email me… thanks..
Penggunaan saluran RS485 untuk sistem tersebut menurut saya sudah tepat, dan 32 adalah jumlah maksimum untuk saluran komunikasi tersebut. Selama kondisi saluran RS485 dalam keadaan baik, penggunaan protokol yang tepat akan dapat menjamin keberhasilan dalam melakukan komunikasi data.
Demikian, semoga dapat sedikit membantu. π
dalam kondisi ingin cepet menguasai/memahami namun modal mepet padahal ada tawaran proyek yang harus segera dikerjakan dan diselesaikan – rekomendasi winavr gcc yang bisa dikombinasikan dengan wvr studio atau eclipse… sudah cukup banyak library di internet, thanks…
Saya setuju dengan pendapat Mas Agfi. Saya sendiri juga lebih sering menggunakan WinAVR atau Arduino dibandingkan assembler. Hanya saja saya selalu meng-encourage diri sendiri dan siapapun untuk menguasai assembler.
Thank you for visiting. π
Soal speed, program yang dibuat assembler tidak tertahankan (relatif cepat maksudnya). Tapi learning curvenya juga cukup tinggi. Buat saya yang masih pemula masih cukup puas dengan AVR-GCC dan Arduino. Mungkin suatu saat nanti kalau waktu sudah luang ( sayangnya jarang ada waktu luang π )
Saya setuju dengan Mas Tius. Membutuhkan waktu yang lebih lama dan usaha yang lebih keras untuk bisa menguasai assembler. Saya sendiri tidak menguasai assembler, tapi saya selalu mengangkat topi tinggi-tinggi bagi para pengguna assembler dan terkadang saya menyicil untuk mempelajari satu instruksi (atau beberapa instruksi yang berkaitan) ketika ada waktu luang, yang bener juga kata Mas Tius kalau itu jarang tersedia. π
Selamat belajar dan salut buat Assembler Warriors! π
kak saya lagi belajar bahasa aseembler, susah juga ya, apalagi saya pemula..
selalu error di penyimpanan file, .
apa kakak bisa beri saya contoh program assembler dg ic atmega8..???