Embedded Software

Posted on

Embedded Software mirip dengan firmware, karena biasanya memiliki fungsi yang sama. Yang terakhir, bagaimanapun, adalah jenis khusus dari embedded software yang ditulis dalam memori non-volatile (seperti ROM atau EPROM), yang tidak dapat dengan mudah dimodifikasi — maka nama “firm” — dan digunakan terutama untuk menjalankan atau boot up perangkat. Sebaliknya, embedded software digunakan untuk keseluruhan pengoperasian perangkat.

Embedded software bisa sangat sederhana, seperti yang digunakan untuk mengontrol pencahayaan di rumah, dan dapat berjalan pada mikrokontroler 8-bit hanya dengan beberapa kilobyte memori, atau bisa juga sangat kompleks seperti perangkat lunak yang menjalankan semua komponen elektronik dari mobil pintar modern, lengkap dengan pengatur suhu, jelajah otomatis dan penginderaan tabrakan, serta kontrol navigasi. Embedded software yang kompleks juga dapat ditemukan dalam sistem avionik pesawat, dalam sistem fly-by-wire yang sangat kompleks yang digunakan dalam pesawat tempur dan bahkan dalam sistem pemandu rudal.

Perbedaan utama antara embedded software dan application software adalah perangkat lunak yang pertama biasanya terkait dengan perangkat tertentu, berfungsi sebagai OS itu sendiri, dengan batasan yang terkait dengan spesifikasi perangkat tersebut, sehingga pembaruan dan penambahan dikontrol secara ketat, sedangkan perangkat lunak aplikasi menyediakan fungsionalitas dalam komputer dan berjalan di atas OS lengkap yang sebenarnya, sehingga memiliki lebih sedikit batasan dalam hal sumber daya.

Sistem Operasi

Tidak seperti komputer standar yang umumnya menggunakan sistem operasi seperti OS X, Windows atau GNU/Linux, embedded software mungkin tidak menggunakan sistem operasi, atau ketika digunakan, berbagai macam sistem operasi dapat dipilih, biasanya secara waktu nyata sistem operasi. Ini berjalan dari operasi kecil satu orang yang terdiri dari run loop dan timer, ke LynxOS, VxWorks, BeRTOS, ThreadX, ke Windows CE atau Linux (dengan kernel yang ditambal). Lainnya termasuk OpenWrt, PikeOS, eCos, Fusion RTOS, Nucleus RTOS, RTEMS, INTEGRITY, uC/OS, QNX, FreeBSD dan OSE. Kode biasanya ditulis dalam bahasa C atau C++, tetapi berbagai bahasa pemrograman tingkat tinggi, seperti Python dan JavaScript, sekarang juga umum digunakan untuk menargetkan mikrokontroler dan sistem tertanam. Ada digunakan dalam beberapa proyek militer dan penerbangan.

Perbedaan dari perangkat lunak aplikasi

Sebagian besar konsumen akrab dengan perangkat lunak aplikasi yang menyediakan fungsionalitas pada komputer. Namun embedded software seringkali kurang terlihat, tetapi tidak kalah rumit. Tidak seperti perangkat lunak aplikasi, embedded software memiliki persyaratan dan kemampuan perangkat keras tetap, dan penambahan perangkat keras atau perangkat lunak pihak ketiga dikontrol dengan ketat.

Embedded software harus menyertakan semua driver perangkat yang diperlukan pada saat pembuatan, dan driver perangkat ditulis untuk perangkat keras tertentu. Perangkat lunak ini sangat bergantung pada CPU dan chip tertentu yang dipilih. Kebanyakan insinyur embedded software setidaknya memiliki pengetahuan yang lewat tentang membaca skema, dan membaca lembar data untuk komponen untuk menentukan penggunaan register dan sistem komunikasi. Konversi antara desimal, heksadesimal dan biner berguna serta menggunakan manipulasi bit.

Aplikasi web jarang digunakan, meskipun file XML dan keluaran lainnya dapat dikirimkan ke komputer untuk ditampilkan. Sistem file dengan folder biasanya tidak ada seperti database SQL. Pengembangan perangkat lunak membutuhkan penggunaan kompiler silang, yang berjalan di komputer tetapi menghasilkan kode yang dapat dieksekusi untuk perangkat target. Debugging membutuhkan penggunaan emulator dalam sirkuit, JTAG atau SWD. Pengembang perangkat lunak sering kali memiliki akses ke kode sumber kernel (OS) lengkap.

Ukuran memori penyimpanan dan RAM bisa sangat bervariasi. Beberapa sistem berjalan dalam 16 KB Flash dan 4 KB RAM dengan CPU yang beroperasi pada 8 MHz, sistem lain dapat menyaingi komputer kontemporer. Persyaratan ruang ini menyebabkan lebih banyak pekerjaan dilakukan di C atau C++ tertanam, bukan C ++. Bahasa yang diterjemahkan seperti BASIC (sementara misalnya Parallax Propeller dapat menggunakan BASIC yang dikompilasi) dan Java (Java ME Embedded 8.3 tersedia untuk misalnya ARM Cortex-M4, mikrokontroler Cortex-M7 dan ARM11 yang lebih lama digunakan dalam Raspberry Pi dan Intel Galileo Gen. 2 tidak umum digunakan; sementara implementasi dari bahasa Python 3 yang ditafsirkan — MicroPython — namun tersedia secara tegas untuk penggunaan mikrokontroler, mis. 32-bit berbasis ARM (seperti BBC micro: bit) dan mikrokontroler PIC 16-bit.

Leave a Reply

Your email address will not be published. Required fields are marked *