A Little Piece of Rtos

5
eCOS (embedded Configurable Operating System) Salah satu contoh dari EOS adalah RTOS Dimana RTOS merupakan sistem operasi yang mendukung multitasking untuk memfasilitasi real time sistem. Mengapa Cygnus mengembangankan e-COS? “menghasilkan real-time operating system berukuran kecil dan dapat dikonfigurasi, sehingga dapat dimanfaatkan untuk solusi komersial, tapi bebas royalty.” Berbagai tipe Hardware : ARM (termasuk Intel Xscale IX425), Intel IA32, MIPS, Motorola PowerPC (termasuk prosesor MPC74xx G4), Motorola 68k/Coldfire, Sun SPARC, Renesas H8/300H, SuperH, NEC V850, Fujitsu FRV, Matsushita AM3x, Samsung CalmRISC dan beberapa lainnya. Implementasi dari e-COS adalah : Sistem Keamanan pada industri otomotif Volvo dan Ford, Gameboy Advance, Mobile phones 3G Labs, Video, Audio, dan MPEG. Struktur direktori component repository eCOS Compact: Berisi paket untuk POSIX dan uITRON Cygmon: paket untuk cygmon standalone debug monitor Devs: memuat semua device driver komponen hardware spesific seperti komunikasi serial, ethernet, pcmcia Error: berisi paket identifikasi kesalahan Fs: berisi paket file sistem ROM dan RAM Hal: gabungan semua paket target perangkay keras HAL Infar: berisi infrastruktur eCOS Io: peket untuk dukungan sistem I/O Isoinfra : berisi paket yang menyediakan dukngan untuk ISO C library dan implementasi POSIX Kernel : berisi paket yang menyediakan fungsional inti (scheduler, semaphore, dan thread) Language : gabungan paket untuk library matematikan dan ISO C. Net: paket untuk networking (TCP, UDP dan IP) Redboot: berisi redboot standalone debug ROM monitor Service : berisi paket alokasi memori dinamis HAL (Hardware Abstraction Layer) Bagian yang menyediakan proses komonukasi antara software dengan hardware. Tujuan utama dari HAL adalah untuk menyembunyikan arsitektur hardware yang berbeda dari Operating Sistem dengan menyediakan antarmuka seragam ke peripheral sistem. Manfaat HAL Memungkinkan aplikasi untuk mengekstrak unjuk kerja dari hardware Mengaktifkan OS untuk melakukan perkerjaan terlepas dari arsitektur hardware Mengaktifkan driver perangkat keras untuk memberikan akses langsung ke masing-masing perangkat keras, yang memungkinkan program untuk perangkat- independen RedBoot ROM Monitor RedBoot = Red Hat Embedded Debug and Bootstrap Bootstrap adalah Boot atau booting. Dalam perangkat keras berarti proses mengaktifkan komputer sampai diambil alih oleh sistem operasi Fungsinya menyediakan lingkungan untuk bootstrap dan debugging untuk sistem yang berbasiskan eCOS RedBoot dikembangkan sebagai aplikasi eCos tanpa kernel dan dapat digunakan untuk melakukan booting aplikasi eCos lain dan juga RTOS lain Kernel eCos dirancang untuk mencapai empat tujuan :

Transcript of A Little Piece of Rtos

Page 1: A Little Piece of Rtos

eCOS (embedded Configurable Operating System) Salah satu contoh dari EOS adalah RTOS Dimana RTOS merupakan sistem operasi yang mendukung multitasking

untuk memfasilitasi real time sistem. Mengapa Cygnus mengembangankan e-COS? “menghasilkan real-time operating system berukuran kecil dan dapat

dikonfigurasi, sehingga dapat dimanfaatkan untuk solusi komersial, tapi bebas royalty.” Berbagai tipe Hardware : ARM (termasuk Intel Xscale IX425), Intel IA32, MIPS, Motorola PowerPC (termasuk

prosesor MPC74xx G4), Motorola 68k/Coldfire, Sun SPARC, Renesas H8/300H, SuperH, NEC V850, Fujitsu FRV, Matsushita AM3x, Samsung CalmRISC dan beberapa lainnya.

Implementasi dari e-COS adalah : Sistem Keamanan pada industri otomotif Volvo dan Ford, Gameboy Advance, Mobile phones 3G Labs, Video, Audio, dan MPEG.

Struktur direktori component repository eCOS Compact: Berisi paket untuk POSIX dan uITRON Cygmon: paket untuk cygmon standalone debug monitor Devs: memuat semua device driver komponen hardware spesific seperti komunikasi serial, ethernet, pcmcia Error: berisi paket identifikasi kesalahan Fs: berisi paket file sistem ROM dan RAM Hal: gabungan semua paket target perangkay keras HAL Infar: berisi infrastruktur eCOS Io: peket untuk dukungan sistem I/O Isoinfra : berisi paket yang menyediakan dukngan untuk ISO C library dan implementasi POSIX Kernel : berisi paket yang menyediakan fungsional inti (scheduler, semaphore, dan thread) Language : gabungan paket untuk library matematikan dan ISO C. Net: paket untuk networking (TCP, UDP dan IP) Redboot: berisi redboot standalone debug ROM monitor Service : berisi paket alokasi memori dinamis

HAL (Hardware Abstraction Layer) Bagian yang menyediakan proses komonukasi antara software dengan hardware. Tujuan utama dari HAL adalah untuk menyembunyikan arsitektur hardware yang berbeda dari Operating

Sistem dengan menyediakan antarmuka seragam ke peripheral sistem. Manfaat HAL

Memungkinkan aplikasi untuk mengekstrak unjuk kerja dari hardware Mengaktifkan OS untuk melakukan perkerjaan terlepas dari arsitektur hardware Mengaktifkan driver perangkat keras untuk memberikan akses langsung ke masing-masing perangkat keras,

yang memungkinkan program untuk perangkat-independen RedBoot ROM Monitor

RedBoot = Red Hat Embedded Debug and Bootstrap Bootstrap adalah Boot atau booting. Dalam perangkat keras berarti proses mengaktifkan komputer sampai

diambil alih oleh sistem operasi Fungsinya menyediakan lingkungan untuk bootstrap dan debugging untuk sistem yang berbasiskan eCOS RedBoot dikembangkan sebagai aplikasi eCos tanpa kernel dan dapat digunakan untuk melakukan booting

aplikasi eCos lain dan juga RTOS lain Kernel eCos dirancang untuk mencapai empat tujuan :

Low interrupt latency, waktu yang dibutuhkan untuk merespon sebuah interrupt dan memulai eksekusi, Low task switching latency, waktu yang dibutuhkan saat sebuah thread menjadi tersedia ketika eksekusi

sebenarnya dimulai Small memory footprint, sumber daya memory untuk program dan data dipertahankan minimum dengan

memungkinkan semua komponen mengalokasikan memory sesuai kebutuhan Deterministic behavior, sepanjang eksekusi, performa kernel harus dapat diprediksi dan dibatasi sehingga

memenuhi kebutuhan aplikasi real-time eCOS Scheduler

Dua tipe scheduler tersedia pada eCos : multilevel queue scheduler dan bitmap scheduler. Multilevel queue scheduler memungkinkan thread diberi nilai prioritas dari level 0 hingga 31, dengan 0

adalah prioritas tertinggi dan 31 terendah. Bitmap scheduler adalah scheduler yang lebih sederhana dan efisien. Juga mendukung 32 level prioritas,

tapi hanya satu thread yang dapat dijalankan pada masing-masing level. Filesystem

Page 2: A Little Piece of Rtos

Filesystem yang didukung oleh eCos adalah ramfs, romfs, FAT, dan JFFS2 RAM Filesystem (ramfs) digunakan untuk melakukan operasi file I/O bukan pada storage melainkan pada

RAM ROM Filesystem (romfs) adalah filesystem yang hanya dapat dibaca dan tidak dapat ditulis File Allocation Table (FAT) merupakan sebuah filesystem yang sudah umum digunakan, misalnya sebagai

filesystem untuk sistem operasi Windows 9x. Journaling Flash Filesystem version 2 (JFFS2) adalah filesystem yang umum digunakan pada flash memory.

FemtoOS Komponen dalam RTOS

Scheduler : merupakan indikasi kapan eksekusi suatu perkerjan akan dilakuan Object : digunakan oleh kernel untuk memeprmudah pengembangan, dimana object terdiri atas : Tasks,

Semaphore, Message queues Service : merupakan operasi yang diberikan kepada semua object. Contoh service : Timming, Interrupt

handling, Resource management Karakteristik

Reliability : kemampuan berkerja tanpa intervensi manusia Predictability : merupakan perilaku yang dapat diprediksi untuk rentang waktu yang telah ditentukan Performance : mampu menyelesaikan masalah secepat mungkin Compactness : ukuran dan penggunakan resource terbatas, hal ini merupakan dampak dari desain dan beaya Scalability , modular untuk mendukung berbagai macam tingkat kekompleksan aplikasi.

Femto OS Femto OS merupakan sistem operasi yg sangat efisien, penggunaan program memory nya sebuah aplikasi

kecil dapat dibentuk dengan menggunakan hanya 300 byte saja Didesain untuk mikro kontroler dengan memori (flash atau RAM) Minimal Menggunakan Bahasa C Kebutuhan Flash memori 1K-4K Bytes

Desain Femto OS : Round Robin Scheduling, Preemptive, Shared stacks for task, Power save on Idle, OS Interruptible, Resource Tacking

Komponen Femto : Context Switch, Dispatcher, Scheduling algorithm, Semaphores, Message queue, Pipe, Even Register

Context Switch Sebagai saklar perpindahan sehingga memungkinkan terjadinya proses pergantian task. Pergantian task dikarenakan : Ada task dengan prioritas yang lebih tinggi, Waktu task yang lebih pendek Untuk melakukan context switch pada Femto : TCB, TDB, TtaskSave, portSaveContext, portRestoreContext

Dispathcer Merupakan bagian dari scheduler yang digunakan untuk mengatur aliran eksekusi. Komponen yang digunakan dalam dispatcher : PortEnterlsr, PortBeginlsr, PortRetrunlsr, portYieldlsr.

Scheduling Alogarithm Femto OS setiap task dengan prioritas yang sama akan diselesaikan dengan round robin. Sedangkan untuk

task dengan prioritas yang berbeda akan dikerjakan sesuai dengan prioritasnya Fungsi yang digunakan pada scheduling alogithm adalah : privSelecttask privEnterTask

Semaphore Semaphore merupakan bagian dari kernel object yang digunakan untuk sinkronisasi dari resource Semaphore adalah alat untuk sinkronisasi yang tidak membutuhkan busywaiting. Semaphore S berupa variable integer. Femto OS menggunakan semaphore jenis mutex Fungsi yang ada di Femto : taskMutexRequestonname, taskMutexReleaseonname, TaskSyncrelease,

TaskDisableSwitchtask, TaskEnableswitchtask, taskEnterSwitchcritical, taskExitSwitchcritical Message Queue : Merupakan bagian yang mengatur pengiriman dan penerimaan pesan dalam Femto OS. Fungsi yang ada pada Femto OS : taskQueueReadRequestonName, taskQueueWriteRequestonName,

taskQueueReleaseonName, taskQueueRequestonName Pipe : secara sederhana memiliki fungsi seperti pada message queue

Namun ada perbedaan yang mendasar : Tidak dapat melakukan tugas dengan prioritas Pada Femto fungsi pipe yaitu : taskFileWritePipe, taskFileReadPipe

Page 3: A Little Piece of Rtos

Event Register : Merupakan bagian yang digunakan untuk mengetahui apakah ada suatu event atau tidak. Letaknya terdapat pada kernel. Fungsi yang ada di Femto : taskWaitforallEvents, taskWaitforEventSetOnName

Implementasi Femto pada Eclipse. Komponen yang diperlukan : Instalasi AVR toolchain, Konfigurasi AVR toolchain pada Eclipse, Pemrograman pada Mikrokontroler

Free RTOS FreeRTOS adalah sebuah rela time operating system untuk embeded devices. Task

Mendukung jumlah Task yang tidak terbatas dan dapat berjalan selama hardware dan memori dapat menanganinya

Beberapa fungsi Task yang dapat ditangani : Task Creation, Destruction, Priority Management, Delay Memiliki karakteristik yaitu independen atau bebas dimana setiap task pada saat dieksekusi tidak

bergantung pada task yang lain. Pada saat eksekusi hanya satu task yang dapat dieksekusi dalam satu waktu. Dan yang bertanggung jawab

dalam pelaksanaan eksekusi ini adalah real time shceduler. Destruction digunakan untuk membuang task dari kernel manajemen RTOS. Task akan dihapus dari semua kondisi : Ready, Running, Block, Suspend. void vTaskDelete( xTaskHandle xTask ); Penjelasan: xTask , digunakan untuk menangani task yang akan dihapus Contoh Programvoid vOtherFunction( void ) { xTaskHandle xHandle; // Create the task, storing the handle. xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); // Use the handle to delete the task. vTaskDelete( xHandle ); }TUGAS BESAR APLIKASI TRAFFIC RACE

Yang dibutuhkan1. Proteus (untuk membuat skematik)2. Eclips (sebagai IDE)3. AVR Eclips Plugin (sebagai plugin di eclips)4. Free RTOS ver 7.42 (sebagai library)5. Win AVR (patch)

Cara Install1. Proteus = Set up => next => proteus minta licensi => buka licensi => browse for key file => masukkan file

bernama licensi => open =>install =>next => finish.2. Eclipse = Buka eclipse => help => install new software => pada “work with” klik add => location => archive =>

masukkan AVR Eclipse Plugin => next => finish. Membuat project eclips untuk app “traffic race”

oNew project => expand C/C++ => pilih C project => project name => “Traffic Race” => finish => klik kanan project => propertis => expand AVR => target Hardware => MCU type (Atmega323) => clock freq (8000000) => C/C++ build => setting => additional tools in toolchain => checklist 2 option paling atas => apply.

oExpand AVR assembler => patch => “note” => copy folder freeRTOS_lib dan file freeRTOS config ke folder project => add => free RTOS_lib => ok => add include => add portable => add Atmega323 => apply.

oAVR compiler => directory => => add => free RTOS_lib => ok => add include => add portable => add Atmega323 => add MemMang => apply => ok.

oKlik kanan project => clean project => build project => refresh. Project sudah berisi library AVR dan freeRTOS

oKlik kanan project => new => file => file name (main.c) => finish => isi sourcecode program yang nantinya akan dibuild menjadi file.hex

3. Bikin rangkaian skematik yang dibutuhkan : Mikrokontroler Atmega32 (untuk mengubah keluaran ADC yang berbentuk paralel ke dalam bentuk serial)

Page 4: A Little Piece of Rtos

7Segment MPX2_ca (sebagai decoder dari bilangan Binary Coded Decimal ( BCD ) ke 7 segment decoder) 2 buah transistor BC 107 (adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus

dan penyambung (switching), stabilisasi tegangan, modulasi sinyal atau sebagai fungsi lainnya.) 1 buah crystall (Crystal yang dipakai untuk USBAsp biasanya bernilai 12Mhz, untuk Minimum sistem

biasanya memakai 11.59200 Mhz bisa juga 16Mhz, sedangkan untuk minimum sistem ARDUINO biasanya menggunakan crystal 16Mhz.)

2 buah resistor (menghambat arus listrik) 1 buah traffic light (interface delay waktu) 1 buah ground (untuk melindungi dari tegangan berbahaya ketika insulasi elektrik mengalami kegagalan)