Sunday 14 April 2013

Cara Mengetahui Penggunaan SRAM pada Compiler Arduino

Menurut saya salah satu kekurangan compiler pada Arduino adalah kita tidak mengetahui jumlah SRAM yang dipakai pada AVR target, misal ATMega328p. Arduino Compiler hanya menampilkan jumlah penggunaan flash. ATmega328p memiliki 32Kbyte Flash Dan 2 Kbyte SRAM. Flash digunakan mikrokontroller sebagai menyimpan program yang akan dieksekusi mikrokontroller. Flash bersifat read-only ketika AVR berjalan, ALU hanya akan membaca dan menterjemahkan program-program secara berurutan dari flash memory. Sedangkan SRAM adalah tempat menyimpan variabel,  sehingga SRAM bersifat read-write.

Pengalaman saya menggunakan Arduino pernah suatu ketika membuat suatu project dan AVR selalu restart/reset sendiri. Kemudian setelah saya analisa ternyata SRAM yang saya gunakan melebihi kapasitas ATMega328p. Kemudian saya browsing akhirnya menemukan cara untuk mengetahui jumlah SRAM dengan menggunakan WinAVR. Salah satu fitur pada WinAVR adalah avr-size.exe. Avr-size mampu mengetahui jumlah Flash dan SRAM yang digunakan dari .elf hasil compiler.
Berikut adalah langkah-langkahnya:
  1. Download dan install WinAVR
  2. Pada Arduino IDE. Pilih File > Preferences > Centang Show verbose output during compilation
  3. Compile project yang kita gunakan. Copy lokasi .elf hasil compiler
  4. Buka Command Prompt ketik perintah > avr-size.exe(spasi)lokasi .elf(spasi)-C. Opsi commnad -C digunakan untuk menampilkan format data usage Flash dan SRAM.
  5. Maka ada keluar hasil sebagai berikut:
  6. Gambar hasil command prompt diatas adalah terdapat 2 jenis output. Program merupakan jumlah byte yang menempati flash. Sedangkan data merupakan byte variabel yang menempati SRAM.
  7. Program examples > blink cuma menggunakan SRAM sebesar 11 bytes, sedangkan flash sebesar 1632 bytes. 
  8. Tambahkan opsi "--mcu=(nama AVR yang digunakan)" untuk menambah persen flash dan SRAM yang digunakan pada AVR tertentu. 
  9. Contoh: avr-size.exe(spasi)lokasi .elf(spasi)-C(spasi)--mcu=atmega328
  10. Selamat mencoba.
*Note = mulai Arduino IDE 1.6.3 keatas, console arduino IDE sudah mengeluarkan besarnya SRM


5 comments:

  1. thank you gan... bermanfaat banget...

    ReplyDelete
  2. kalo sram nya kurang bisa ditambah ga gan, atau ada solusi lain ?

    ReplyDelete
    Replies
    1. Gunakan SRAM secara hemat jgn boros2, kalau tetep gak bisa ya terpaksa ganti IC

      Delete
  3. Makasih udah sharing info,
    Ditunggu kunjungan baliknya ke postingan terbaru saya di Cara Mengecek RAM Laptop, Melihat Prosesor & Bit Komputer Laptop atau bisa juga mampir ke Web saya di https://www.agres.id

    ReplyDelete

Develop STM32 dengan STM32cubeMx + OpenSTM32 IDE

Banyak temen ² yang masih ngoprek STM32 di Keil, yang harus nyari software crack ²an. Bebas sih, tapi saya sepaham dengan dosen saya saat ...