Pengenalan FreeRTOS – Pendahuluan

FreeRTOS adalah official real-time OS yang didukung oleh ESP32. FreeRTOS (sering disebut vanilla FreeRTOS), didesain untuk single-core architectures.

Namun ESP32 memiliki dua cores, oleh karena itu FreeRTOS direvisi untuk dapat menangani 2-core systems. Berikut kelebihan ESP-IDF FreeRTOS:

  • Create new tasks: Terdapat fungsi baru xTaskCreatePinnedToCore dimana kita dapat memilih core yang mana untuk menjalankan task.
  • Scheduler suspension: fungsi vTaskSuspendAll hanya akan menghentikan scheduler pada core dimana fungsi dipanggil. Core lainnya akan tetap beroperasi, oleh karena itu menghentikan scheduler bukan cara yang tepat untuk menjaga shared resource.
  • Critical sections: memasuki critical section akan memberhentikan scheduler pada core yang bersangkutan. Core lainnya akan terus beroperasi. Namun critical section di protec oleh mutex, mencegah core lain menjalankan crittical section sampai core lainnya tersedia. Untuk kebutuhan ini, digunakan macros portENTER_CRITICAL_SAFE(mux) danportEXIT_CRITICAL_SAFE(mux) macros.

Perhatian, Dual-core ESP32, masing-masing core menggunakan nama PRO_CPU (cpu0) dan APP_CPU (cpu1). PRO_CPU dijalankan ketika ESP32 pertama kali dinyalakan, lalu menjalankan semua inisialisasi, termasuk APP_CPU activation. Fungsi app_main dipanggil dari main task yang berjalan pada PRO_CPU.

Anda dapat lihat dokumentasi lengkap mengenai FreeRTOS, disini https://www.freertos.org/

Untuk versi Espressif disini: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/freertos-smp.html.

Sharing is caring:

Leave a Comment