RTOS nedir ?

Başlatan muhittin_kaplan, 12 Ocak 2011, 21:08:27

muhittin_kaplan

Evet RTOS nedir Ne Avantaj Sağlar ?

Hattusa

Alıntı yapılan: gerbay - 12 Ocak 2011, 22:04:50
gülerek, eğlenerek okuyacağınız bir link;

http://emrahcom.blogspot.com/2009/04/gercek-zamanl-real-time-sistem-nedir.html

s.a. usta
ilk defa bir blok yazısını satır satır okudum, emrah ustayı tebrik ediyorum. hatta bu konuyuda hiç kimse bu kadar anlaşılır anlatamazdı
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Andromeda

yemek pişirmeyi öğrendim ama rtos u öğrenemedim ;D
" Tanrı, iradesini hakim kılmak için yeryüzündeki iyi insanları kullanır, yeryüzündeki kötü insanlar ise kendi iradelerini hakim kılmak için Tanrı'yı kullanırlar." ..." Tanrı'dan mesaj gelmiyor, biz Tanrı'ya mesaj gönderiyoruz"

serdararikan

bende çok merak ediyorum bu olayı fakat henüz ne işe yaradığı hakkında kafama yatan bişey olmadı.anladığım tek olay multi tasking.
biri örneklese süper olur

serdararikan

bu noktada hazır bir RTOS mu kullanmalı yoksa kendi RTOS umuzu mu yazmalı?

muhittin_kaplan

#5
şimdi rtos u işlemciye yükledikten sonra ki freertos u kullandığımız düşünüyoruz  herhangi bir uygulamayı nasıl yükleyip çalıştıracağız ? yada bu uygulamaları ?
(basitten gidiyorum belki anlamsız sorular soruyorum kusra kalmayın)

muhittin_kaplan

Bakıyorum Elimde Olan NXP LPC1768 i ve code-red ideyi doğrudan destekliyormuş :)

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

RTOS'un en önemli avantajlarından birisi de kodun okunabilirliğini artırması...

Burada örnekle anlatmış olayı :

http://www.netburner.com/downloads/embedded_projects/RtosVsInfiniteLoop.pdf

PROTECH_

http://blog.feabhas.com/about/

Embedded Systems ile ilgili güzel bir link.
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - berlin

z

RTOS uygulamalarinda bir taskdan bir baska taska nasil veri aktariyorsunuz? Basit bir kod ornegiyle gosterebilirmisiniz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Yahu RTOS kullanan onca kisi oldugunu biliyorum. Siz de benim gibi bu isin nasil yapildigini bilmiyor ve birbiriyle hic veri alisverisi yapmayan task kodlari mi yaziyorsunuz da cevap vermiyorsunuz?

Merak ettigim konuyu bir ornekle daha acik yazayim.

1 nolu Task, klavyeden enter basilincaya kadar gelen karakterleri string olusturmak uzere biriktirsin. String hazir olunca da;

2 nolu Task 1 nolu taskdan gelen stringi LCD de yazsin.

Merak ettigim konu,Task1 diyorki, HEY Task2, LCD de gostermen icin stringi ramdaki degiskene yazdim. Degiskenin adresi bu. Alip kullandiginda haber verki yenisi gelirse eskisinin uzerine yazayim, kullanmadiysan bileyim de eskisinin uzerine yazmayayim gibisinden muhabbetleri siz mi kodluyorsunuz yoksa RTOS bu isi kendi mi hallediyor?

Nasil oluyor bu islem?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

#12
Bunalmış hocam RTOS bunu nereden bilsin ?
Elbette bu kodları yazan biz :) gerekli durum oluştuğunda diğer TASK'a haber vermek için,
bir semafor u tetikliyoruz.
Bunu bekleyen diğer TASK ta işlemini yapıyor....

        if(In_Button_A || In_Button_B || In_Button_C || In_Button_D)
        {
            SysSignalSemaphore( hSemaShortBuzzer );
            timerLast = SysGetTime();
        }


void TaskShortBuzzer(){

	while( TRUE ){
        Sys_WaitSemaphore( hSemaShortBuzzer, EVENT_NO_TIMEOUT );
        DOUT_BUZZER = 1;
		Sys_Sleep( 40 ms );
        DOUT_BUZZER = 0; 
        Sys_Yield();
	}
}


Bunu her butona basışta kısa bir DIT sesi çıkartmak için kullanmıştım...

z

#13
Allegro sagolasin.

Kodu elbette biz yazacagiz da asagidaki gibi biz mi kodlayacagiz yoksa RTOS mu bir seyler yapacak diye merakim kabardi ama verdigin kod sayesinde bu isi RTOS'un hallettigini anladim.

   if(Flag1==1)  // Task2 daha stringle isini bitirmemis
     {
     } 
   else    // Task2 isini bitirmis oyleyse yeni stringi yazayim
    {
     }

     

RTOS konusu kafamda tam sekillenmedi. Sagda solda okudugum yazilarda da kafamdaki sorulara cevap bulamiyorum.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erol YILMAZ

#14
Birden çok TASK ın haberleşmesi için semafor, event vs başka isimde birşeyler kullanıyorlar.

Anladığım kadarı ile bunların sadece adı değişik :)

Bu arada bence RTOS konusunda oldukça sağlam ilerliyorsunuz...

Bu arada ShoftBuzzer fonksiyonunda gördüğümüz,

Sys_WaitSemaphore( hSemaShortBuzzer, EVENT_NO_TIMEOUT );
ve
Sys_Yield(); 

fonksiyonları çalıştığında görev paylaşımı yapmak üzere cpu tekrar Schedular'a dönüyor....