Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

22
Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32 Oleh: Aris Cahyadi Risdianto (23210016) Vani Virdyawan (23110035) EL 6011 – Sistem Embedded dan Waktu Nyata

Transcript of Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Page 1: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Oleh:Aris Cahyadi Risdianto (23210016)

Vani Virdyawan (23110035)

EL 6011 – Sistem Embedded dan Waktu Nyata

Page 2: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Pendahuluan

Definisi RTOS

“Real-Time Operating System (RTOS) adalah sistem operasi yang multitasking

yang ditujukan untuk aplikasi yang real-time”. Wikipedia, 2011.

“Program yang menjadwalkan semua eksekusi/pekerjaan yang sangat teratur,

mengatur semua resource dari sistem, dan menyediakan dasar yang konsisten

untuk mengembangkan kode aplikasi diatasnya”. Real Time Concept for

Embedded Systems, 2003.

Dari aplikasi simple (jam digital) sampai aplikasi yang kompleks (perangkat

navigasi penerbangan) => Scalable

Page 3: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Komponen RTOS

Scheduler

Indikasi kapan eksekusi suatu pekerjaan akan dilakukan

Round-robin atau preempetive scheduling

Objects

Dibangun oleh kernel untuk memudahkan pengembangan

Terdiri dari tasks, semaphores, dan message queues

Services

Operasi yang diberikan kepada semua objek

Diantaranya timing, interrupt handling, dan resource management

Page 4: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Karakteristik RTOS

Reliability, kemampuan bekerja tanpa intervensi manusia.

Predictability, perilaku bisa diprediksi untuk rentang waktu yang telah ditentukan

Performance, mampu menyelesaikan pekerjaan secepat mungkin

Compactness, ukuran dan penggunaan resource terbatas, pengaruh dari desain dan biaya

Scalability, modular untuk mendukung berbagai macam tingkat kekompleksan aplikasi

Page 5: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Pengenalan Femto OS

Dimulai sejak 2007, terinspirasi oleh FreeRTOS

Didesain untuk mikro kontroler dengan Memory (Flash atau

RAM) minimal seperti Attiny

Menggunakan bahasa C, dengan port file yang terpisah

Kebutuhan Flash Memory 1K – 4K Bytes

Kebutuhan RAM (OS 10 – 20 bytes, Tasks 6 bytes)

Aplikasi terkecil “bare” 258 bytes Flash dan 10 bytes RAM

Keterbatasan jumlah tasks > 16 atau sinkronisasi primitif

Page 6: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Desain Femto OS

Round Robin Scheduling (every task for each priority)

Preemptive and cooperative (task by task basis) Shared Stacks for tasks ( saving ram) Register Compression (only save taskswitch register) Separate OS/ISR Stack Space Power save on Idle Honest Time Slicing (every task same execution time) OS interruptible (almost large OS parts) Resource Tracking (kernel released if task terminated)

Page 7: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Fitur Femto OS Nested Critical Sections (tick and general interrupt)

Rendez Vous, Mutexes, Queues (tasks communication) Priority Lifting Timed Power down (task delay long, OS sleep) Precision Delays between wakeup tasks Watchdog per Task to revive crashed tasks High Resolution Load Monitor to check how many sub ticks Integrated file system for onboard eeprom High speed events to revive tasks for special actions etc

Page 8: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Arsitektur Femto OS

Page 9: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Implementasi Femto OS

Page 10: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Komponen RTOS pada Femtoo

Context Switch

Dispatcher

Scheduling algorithm

Semaphores

Message queue

Pipe

Event register

Page 11: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Context Switch

Memungkinkan terjadinya proses pergantian task

Untuk melakukan context switch pada Femtoo OS terdapat

TCB TDB ttaskSave portSaveContext portRestorecontext

Page 12: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Dispatcher

Bagian dari scheduler yang digunakan untuk mengatur alliran eksekusi.

Pada Femtoo OS komponen-komponen dari dispatcher adalah

PortEnterIsr PortBeginIsr PortReturnIsr PortYieldIsr

Page 13: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Scheduling Algorithm

Pada Femtoo OS task dengan prioritas yang sama akan diselesaikan dengan round robi, sedangkan untuk task dengan prioritas yang berbeda akan dikerjakan sesuai dengan prioritasnya.

Fungsi yang digunakan pada Femtoo OS adalah privSelecttask privEnterTask

Page 14: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Semaphores

Semaphore merupakan bagian dari kernel objek yang digunakan untuk sinkronisasi dari resource.

Pada Femtoo OS digunakan semaphore jenis Mutex

Fungsi yang terdapat pada Femtoo OS adalah taskMutexRequestonname taskMutexReleaseonname TaskSyncrelease TaskDisableSwitchtask TaskEnableswitchtask taskEnterSwitchcritical taskExitSwitchcritical

Page 15: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Message Queue

Merupakan bagian yang mengatur pengiriman dan penerimaan pesan

Pada Femtoo OS bagian-bagian yang berfungsi sebagai message queue adalah

taskQueueReadRequestonName taskQueuewriteRequestonName taskqueueReleasOnName taskQueueRequestonName

Page 16: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Pipe

Pipe secara sederhana berfungsi seperti message queue, namun memiliki perbedaan yang mendasar, yaitu tidak dapat melakukan tugas dengan prioritas

Pada Femtoo OS fungsi pipe yaitu taskFileWritePipe taskFileReadPipe.

Page 17: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Event Register

Pada kernel terdapat suatu spesial register yang merupakan bagian dari TCB dan digunakan untuk mengetahui adanya suatu events.

Pada Femtoo OS fungsi ini disebutkan dengan taskWaitforallEvents taskWaitforEventSetOnName

Page 18: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Implementasi Femtoo pada Eclipse

Dilakukan untuk mengetahui apakah Femtoo OS dapat berjalan dengan baik atau tidak.

Dilakukan dengan mengunggah program pada microcontroller Atmega32 dengan source program dari demo_source.

Untuk dapat melakukan pemrograman pada Eclipse harus dilakukan

Installasi AVR toolchain Konfigurasi AVR toolchain pada Eclipse Pemrograman pada microcontroller

Page 19: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Installasi AVR Toolchain

Unduh AVR Toolchain Installer dengan mengakses web berikut ini www.atmel.com/dyn/products/tools_card.asp?tool_id=2725&category_id=163&family_id=607&subfamily_id=760

Lakukan installasi dengan default options

Page 20: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Konfigurasi AVR Toolchain

untuk melakukan konfigurasi dapat dilakukan secara online maupun dengan mengunduh dahulu program avreclipse-p2-repository-2.3.4.20100807PRD.

Karena terdapat masalah pada jaringan maka dilakukan konfigurasi dengan terlebih dahulu mengunduh program avreclipse-p2-repository-2.3.4.20100807PRD.

Page 21: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

Pemrograman pada Microcontroller

Buat project baru dengan memilih project C.Copy folder femtoos_devices, femtoos_source,

femtoos_headers yang terdapat pada FemtoOs ke project tersebut.

Include folder-folder tersebut pada AVR Assembler, AVR Compiler, AVR C linker, dengan membuka properties pada project tersebut dan pilih settings pada C/C++ Build. (Untuk AVR C linker, hanya masukkan pada libraries path (-L)).

Exclude Femtoo_devices.Setelah itu build project dan upload project tersebut

ke mikrokontroller.Pastikan hardware yang digunakan sesuai.

Page 22: Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

THANK YOU