AVRA – Atmel AVR Assembler


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!

πŸ˜€

15 comments

  1. Tius · Februari 9, 2010

    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.

  2. chandramde · Februari 9, 2010

    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πŸ˜€

  3. fie · Februari 9, 2010

    * Glek, nelen ludah *
    eniwei, ini ngomongin apa seh ???? :((

  4. chandramde · Februari 10, 2010

    Kursus privat ma aku deh, pasti gak nelen ludah lagi…πŸ˜€

  5. Kartika · April 29, 2010

    Terima kasih atas kiriman PCB sistem minimumnya. Tapi saya belum mengerti menggunakan AVRASM32, boleh saya tahu link tutorialnya ada dimana

  6. chandramde · April 30, 2010

    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!πŸ˜€

  7. adh13 · Mei 31, 2010

    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….

  8. chandramde · Juni 1, 2010

    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!πŸ˜€

  9. mundink · Oktober 19, 2010

    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..

  10. chandramde · Oktober 20, 2010

    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.πŸ˜€

  11. agfianto · Oktober 25, 2010

    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…

    • chandramde · Oktober 26, 2010

      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.πŸ˜€

  12. Tius · Oktober 27, 2010

    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πŸ˜€ )

    • chandramde · Oktober 28, 2010

      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!πŸ˜€

  13. rhie · November 25, 2010

    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..???

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