Pembuatan program mikrokontroler dalam bahasa tingkat-tinggi (high-level language, disingkat HLL), misalnya bahasa ‘C’ atau ‘BASIC’, memungkinkan kita mengurangi waktu pengembangan secara signifikan jika dibandingkan dengan Bahasa Assembly. Ada juga yang mengatakan, seorang perancang yang sudah beperngalaman bisa menuliskan sejumlah baris kode-kode yang sama per hari baik dalam C dan Assembly. Namun perlu diingat bahwa, sebaris kode dalam C sama dengan sejumlah kode atau baris dalam Assembly.
Biasanya, sebuah program yang ditulis dalam HLL akan lebih terstruktur dibandingkan program yang sama yang ditulis dalam Assembly. Dengan demikian, akan lebih mudah melakukan pelacakan (debugging) dalam HLL.
Kebanyakan arsitektur mikrokontroler 8-bit dilengkapi dengan sebuah kompailer. Bagaimanapun juga, ada perbedaan besar dalam bagaimana efisiensi arsitektur untuk HLL, dan bagaimana kode-kode C disusun agar efisien untuk suatu arsitektur mikrokontroler tertentu. Ada yang mengatakan bahwa arsitektur berbasis akumulator, seperti 8051 dari Intel, bekerja dengan baik menggunakan variabel-variabel global, sedangkan arsitektur berbasis register, seperti AVR-nya Atmel, bekerja dengan baik menggunakan variabel-variabel lokal.
Keuntungan menggunakan variabel-variabel lokal adalah kode-kode menjadi lebih terstruktur, dan portabilitas serta pemeliharaan kode menjadi lebih sederhana dibandingkan penulisan kode/program yang melibatkan banyak variabel global. Selain itu, penggunaan kembali kode akan menjadi lebih mudah jika ditulis dengan melibatkan variabel-variabel lokal. Jika semua parameter yang keluar masuk suatu subrutin didefinisikan didalam pemanggilan fungsi, maka akan sangat mudah untuk menggunakan subrutin tersebut untuk proyek baru lainnya.
Kelemahan utama penulisan program dalam HLL adalah programnya menjadi lebih besar dan lambat dibandingkan jika ditulis dalam Bahasa Assembly. Bagaimanapun juga, seiring dengan jumlah baris program yang bertambah, gap ukuran antara kode yang ditulis dalam HLL dan yang ditulis dalam Assembly menjadi mengecil. Untuk para pengguna AVR, titik temu (antara HLL dan Assembly) kesamaan ukuran sekitar 4K. Program yang ditulis dalam HLL umumnya tidak akan lebih cepat dibandingkan dituliskan dalam Assembly. Jika kecepatan eksekusi pada beberapa bagian program menjadi bagian yang kritis, solusinya (biasanya) adalah menuliskan bagian kritis tersebut dalam Assembly, sisanya (kerangka program dan bagian-bagian yang tidak kritis) dalam HLL.
Oya… menurut Anda, sebaiknya yang mana akan gunakan? HLL atau Bahasa Tingkat Tinggi atau kembali ke selera asal yaitu Assembly? Silahkan berkomentar/diskusi… Terima kasih.
Sumber:
- Svendlsi, O.J., 2005, Designing for Efficient Production with In-System Re-programmable Flash µCs, Atmel Applications Journal, Number 4 – Spring 2005