Sistem Operasi Microcontroller (MicroC/OS, bergaya C/OS) adalah sistem operasi waktu nyata (RTOS) yang dirancang oleh Jean J. Labrosse pada tahun 1991. Ini adalah kernel waktu nyata preemptive berbasis prioritas untuk mikroprosesor, ditulis kebanyakan dalam bahasa pemrograman C. Hal ini dimaksudkan untuk digunakan dalam sistem tertanam.

FreeRTOS adalah sistem operasi waktu nyata sumber terbuka untuk microcontroller yang membuat perangkat edge kecil dan berdaya rendah menjadi mudah untuk diprogram, dilakukan deployment, diamankan, dihubungkan, dan dikelola. Didistribusikan secara bebas dengan lisensi sumber terbuka MIT, FreeRTOS mencakup sebuah kernel dan seperangkat pustaka perangkat lunak yang terus berkembang yang sesuai untuk penggunaan di seluruh sektor industri dan aplikasi.

Microcontroller berisi prosesor sederhana dengan sumber daya terbatas yang dapat ditemukan di banyak perangkat, termasuk peralatan rumah tangga, sensor, pelacak kebugaran, dan otomatisasi industri. Banyak perangkat kecil yang mendapat manfaat dengan terhubung ke cloud atau parangkat lain secara lokal, namun memiliki daya komputasi dan kapasitas memori yang terbatas, serta biasanya melakukan tugas yang sederhana dan fungsional.

Fitur pada MicroC/OS

 

–    Ini adalah kernel real-time yang sangat kecil.

–    Memori sekitar 20 kb untuk berfungsi penuh.

–    Source code biasanya ditulis dalam bahasa C.

–     Portable tinggi, ROMable, sangat scalable, preemptive real-time, deterministik, kernel multitasking.

–    Dapat mengelola hingga 64 tugas.

–     Porting lebih dari 100 mikroprosesor dan mikrokontroler.

–     Mudah digunakan dan mudah diterapkan sangat efektif dibandingkan dengan rasio harga/kinerja.

–     Mendukung semua jenis prosesor dari 8 – bit hingga 64 bit

 

Task States

MicroC/OS adalah sistem operasi multitasking. Setiap tugas adalah loop tak terbatas dan dapat berada di salah satu dari lima status berikut.

-Dormant

-ready

-Running

-Waiting

-Interupsi layanan rutin

 

Task Feature(Services)

– MicroC/OS dapat mengelola hingga 64 tugas.

– Empat tugas prioritas tertinggi dan empat tugas prioritas terendah dicadangkan untuk penggunaannya sendiri. Ini menyisakan 56 tugas untuk aplikasi.

-Semakin rendah nilai prioritas, semakin tinggi prioritas task

Gambar 1. Lifecycle OS

Task Management

–  Setelah tugas dibuat, tugas harus mendapatkan tumpukan yang akan disimpan dalam data.

– Sebuah tumpukan harus terdiri dari lokasi memori yang berdekatan.

– diperlukan untuk menentukan berapa banyak tugas ruang tumpukan yang benar-benar digunakan.

– Menghapus tugas berarti tugas akan dikembalikan ke keadaan tidak aktif dan tidak berarti bahwa kode untuk tugas tersebut akan dihapus.

– jika tugas lain mencoba menghapus tugas saat ini, sumber daya tidak dibebaskan dan dengan demikian hilang, sehingga tugas harus menghapus dirinya sendiri setelah menggunakan sumber dayanya.

– prioritas tugas panggilan atau tugas lain dapat diubah saat dijalankan.

– Tugas dapat ditangguhkan sendiri atau tugas lain, tugas yang ditangguhkan dapat dilanjutkan sendiri.

–  Suatu tugas dapat memperoleh informasi tentang tugas itu sendiri atau tugas lainnya. Informasi ini dapat digunakan untuk mengetahui tugas yang dilakukan pada waktu tertentu.

Memory Management

Beberapa hal yang dilakukan pada memory management:

–   Menginisialisasi Memory Manager

–   Membuat partisi memori

Setiap partisi memori berisi memory block yang berukuran tetap.

–   Mendapat status dari partisi memori yang telah dibuat

–   Mendapatkan Memory Block

–   Mengembalikan Memory Block

–   Menunggu Memory Block dari partisi memori

Pada memory management, sebuah task harus membuat memori partisi sebelum digunakan dan biasanya task tersebut mengambil memory block dari memori partisi. Alokasi dan dealokasi dari memory block yang berukuran tetap tersebut diselesaikan dalam waktu yang konstan dan bersifat deterministik.

Time Management

Pada time management, terdapat istilah yang disebut dengan Clock Tick yang merupakan sumber waktu berkala (periodic time) untuk melacak waktu penundaan (delay) dan batas waktu (time out).

Terdapat 5 services yang termasuk dalam time management:

  1. OSTimeDLY()
  2. OSTimeDLYHMSM()
  3. OSTimeDLYResume()
  4. OSTimeGet()
  5. OSTimeSet()

3 alasan utama untuk menggunakan RTOS

  1. Aplikasi yang dibangun dengan RTOS mudah dirawat dan terukur.

RTOS dibangun dengan paradigma desain multitasking preemptive, yang memungkinkan tugas untuk beralih dari satu ke yang lain berdasarkan kebutuhan. Pada dasarnya, ini memungkinkan untuk membuat kode untuk setiap tugas secara terpisah, sambil menyerahkannya ke RTOS untuk memastikan bahwa persyaratan waktu untuk

masing-masing tugas terpenuhi.

  1. RTOS dilengkapi dengan tumpukan dan driver komunikasi pra-integrasi.

RTOS biasanya mencakup tumpukan komunikasi seperti TCP/IP dan USB, bersama dengan driver yang diperlukan untuk mendukung protokol ini dan periferal lainnya. Dengan menghilangkan kebutuhan untuk mengimplementasikan fungsionalitas tersebut dari awal atau memperkenalkan kode pihak ketiga lainnya yang tidak pasti, maka dapat secara drastis mengurangi waktu dan biaya pengembangan.

  1. Alat debug & analisis RTOS membantu meningkatkan implementasi

Saat aplikasi Anda bertambah besar, debugging menjadi lebih sulit. Terkadang, masalah seperti penggunaan memori yang tidak diinginkan atau kebocoran bisa sulit didiagnosis tanpa pemahaman yang kuat tentang perilaku sistem dan penggunaan sumber daya. Untungnya, ada banyak alat untuk debugging RTOS-aware untuk membantu yang dapat memantau alokasi sumber daya untuk setiap tugas, seperti Ozone SDK Segger .

Referensi

https://en.wikipedia.org/wiki/Micro-Controller_Operating_Systems https://dbpedia.org/page/Micro-Controller_Operating_Systems#:~:text=Micro%2DController

%20Operating%20Systems%20(MicroC,for%20use%20in%20embedded%20systems. https://aws.amazon.com/id/freertos/

https://www.seeedstudio.com/blog/2021/04/26/rtos-basics-getting-started-with-microcontrolle rs/