Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

472 views

Published on

  • Be the first to comment

  • Be the first to like this

Implementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32

  1. 1. EL 6011 – Sistem Embedded dan Waktu NyataImplementasi RTOS (Femto OS) pada Mikrokontroller Seri ATMega32 Oleh: Aris Cahyadi Risdianto (23210016) Vani Virdyawan (23110035)
  2. 2. PendahuluanDefinisi RTOS“Real-Time Operating System (RTOS) adalah sistem operasi yang multitaskingyang 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 konsistenuntuk mengembangkan kode aplikasi diatasnya”. Real Time Concept forEmbedded Systems, 2003.Dari aplikasi simple (jam digital) sampai aplikasi yang kompleks (perangkatnavigasi penerbangan) => Scalable
  3. 3. Komponen RTOS SchedulerIndikasi kapan eksekusi suatu pekerjaan akan dilakukanRound-robin atau preempetive scheduling ObjectsDibangun oleh kernel untuk memudahkan pengembanganTerdiri dari tasks, semaphores, dan message queues ServicesOperasi yang diberikan kepada semua objekDiantaranya timing, interrupt handling, dan resource management
  4. 4. 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
  5. 5. 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
  6. 6. 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)
  7. 7. 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
  8. 8. Arsitektur Femto OS
  9. 9. Implementasi Femto OS
  10. 10. Komponen RTOS pada Femtoo Context Switch Dispatcher Scheduling algorithm Semaphores Message queue Pipe Event register
  11. 11. Context Switch Memungkinkan terjadinya proses pergantian task Untuk melakukan context switch pada Femtoo OS terdapat  TCB  TDB  ttaskSave  portSaveContext  portRestorecontext
  12. 12. Dispatcher Bagian dari scheduler yang digunakan untuk mengatur alliran eksekusi. Pada Femtoo OS komponen-komponen dari dispatcher adalah  PortEnterIsr  PortBeginIsr  PortReturnIsr  PortYieldIsr
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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.
  17. 17. 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
  18. 18. 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
  19. 19. 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&subfa mily_id=760 Lakukan installasi dengan default options
  20. 20. 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.
  21. 21. 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.
  22. 22. THANK YOU

×