Rtos hakkında

Başlatan bulut_01, 02 Aralık 2017, 22:40:27

bulut_01

İyi aksamlar arkadaslar rtos hakkında bazı sorularım olacaktı sizlere öncelikle ccs kullanıcısıyım ccs freertos kullanıyor sanırım rtos gercek zamanlı işletim sistemi mantıgıyla calışıyorsa, ben test yaptım 3 tane task yapıp denedim 2 ci taskımda 5 sn delay fonksiyonu yazdım diğer tasklar bu delay bekledi 5 sn o zmn rtosun ne avantajı varki delay fonksiyonu bütün taskları etkiliyorsa ayrıca rtos normal kodlamaya göre ne kadar güvenilir ve stabildir bu konuda düşüncelerinizi burda paylaşırsanız rtos hakkındaki soru işaretlerinide gidermiş oluruz.
YENİLMEZ..

cetin1990

Rtos içine  için özel bir gecikme mekanizması vardır. Bu şekilde yazmak gerekir. Kılavuzunda , belgesinde açıklanmıştır.

bulut_01

Peki üstad ccs için bu mekanızma nasıl oluyor help bölümünde bana yeterince acıklayıcı gelmedi rtos konusunda
YENİLMEZ..

mufitsozen

#3
Alıntı yapılan: bulut_01 - 02 Aralık 2017, 22:40:27
İyi aksamlar arkadaslar rtos hakkında bazı sorularım olacaktı sizlere öncelikle ccs kullanıcısıyım ccs freertos kullanıyor sanırım rtos gercek zamanlı işletim sistemi mantıgıyla calışıyorsa, ben test yaptım 3 tane task yapıp denedim 2 ci taskımda 5 sn delay fonksiyonu yazdım diğer tasklar bu delay bekledi 5 sn o zmn rtosun ne avantajı varki delay fonksiyonu bütün taskları etkiliyorsa ayrıca rtos normal kodlamaya göre ne kadar güvenilir ve stabildir bu konuda düşüncelerinizi burda paylaşırsanız rtos hakkındaki soru işaretlerinide gidermiş oluruz.

1- ccs rudimentary(ilkel, temel) bir cooperative(isbirlikci) rtos icerir. Bazi MCUlar icin freertos ccs ile uyarlanabilir ama halihazirda calisan ve ticari olarak desteklenen bir urun oldugunu zannetmiyorum. Ccs icinde freertos geldigini hic duymadim.

2- RTOSun "normal kodlamaya" gore bircok avantaji vardir, cok daha guvenilir ve en ust derecede stabil olarak kullanilabilir.

3- RTOS ile program yazmadan once real-time programlama teknik ve veri yapilari, sistem komponentleri hakkinda bilgi sahibi olmak gerekir.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

kimlenbu

ti sitesinde rtos için 10 küsur bölümlük eğitim videosu var, izlersen orada anlatıyor.

mufitsozen

Alıntı yapılan: kimlenbu - 02 Aralık 2017, 23:40:45
ti sitesinde rtos için 10 küsur bölümlük eğitim videosu var, izlersen orada anlatıyor.
Satin @kimlenbu
TI sitesindeki rtos kendi mculari icin ozel olarak support ettikleri bir rtos'u anlatiyor, bunun ccs'in rtos fonksiyonlari ile bir alakasi yok.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

bulut_01

Simdi hangi editör olursa olsun gercek zamanlı işletim sisteminden bahsediyor isek rtos en küçük örnegi delay fonksiyonundan diğer görevlerin etkilenmemesi gerekmez mi?  basic rtos bile olsa.
YENİLMEZ..

cetin1990

Bence delay rtosta öyle kullanılmaz.
Bayrak ile kontrol edilir. Her turda sayac azalır. Task içinde  bir bayrak kontrol edilir. Sayı sıfırlandıysa  gecikme bitmiş demektir. Sonraki işlere geçilir. Delay süresi boyunca boş boş beklenmez

mufitsozen

#8
Alıntı yapılan: bulut_01 - 02 Aralık 2017, 23:59:01
Simdi hangi editör olursa olsun gercek zamanlı işletim sisteminden bahsediyor isek rtos en küçük örnegi delay fonksiyonundan diğer görevlerin etkilenmemesi gerekmez mi?  basic rtos bile olsa.

Hayir, adi ustunde bu bir COOPERATIVE scheduler olan rtos. Yani her task sira ile kendisi kontrolu birakana kadar calisir. Her task kendisi calisirken oburleri duracak diye bilinerek programlanmali.

Rtos schedulerin kullandigi yontemi bilmeden bu task oyle calisir obur task boyle calisir diyemezsiniz. Yani bilgi eksikligini duz mantikla fikir yuruterek gideremezsiniz.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

mufitsozen

#9
Alıntı yapılan: bulut_01 - 02 Aralık 2017, 23:59:01
Simdi hangi editör olursa olsun gercek zamanlı işletim sisteminden bahsediyor isek rtos en küçük örnegi delay fonksiyonundan diğer görevlerin etkilenmemesi gerekmez mi?  basic rtos bile olsa.

Sizin editor kelimesini kullaniminizdan ccs'in ne oldugunu ve nasil calistiginida tam olarak bilmediginizi dusunuyorum.

Ccs c kullandiginiz mcu icin yazilmis bir C derleyicisidir, bir takim yan fonksiyonlar ile programlamayi biraz daha kolaylastiracak sekilde zenginlestirilmistir. Adina rtos dedikleri fonksiyon grubununda ne real-time nede os yani isletim sistemi ile bir alakasi yoktur.
Bu cok basit, kisitli fonksiyonlar ile ayni anda calisiyor intibasi veren ve zaman paylasimli calisan bir takim tasklar yapilabilir.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

bulut_01

Hocam belirtiğiniz rtos bicimini ccs kullandıgını nerden ögrendiniz ben bu konuda bilgi edinemedim eger dediğiniz gibiyse ccs deki rtos diye gecen kavramın gercek zamanlılıkla alakası yok kandırmaca o zaman
YENİLMEZ..

mufitsozen

#11
Alıntı yapılan: bulut_01 - 03 Aralık 2017, 00:25:55
Hocam belirtiğiniz rtos bicimini ccs kullandıgını nerden ögrendiniz ben bu konuda bilgi edinemedim eger dediğiniz gibiyse ccs deki rtos diye gecen kavramın gercek zamanlılıkla alakası yok kandırmaca o zaman

Ccsin rtos manualda yaziyor http://silanus.fr/sin/formationISN/Robotique/Logiciels/CCS/Data%20Sheets/RTOS.pdf

Bilgisayardaki gercek zamanlilik ile sizin gunluk kullaniminizdaki gercek zamanliligin bir alakasi yok. Cok cekirdekli bir takim cok ozel ortamlar haricinde gercek zamanlilik bir anda sadece bir task run edip, ZAMAN PAYLASIMLI olarak butun taskleri gerektigi zamanda calistirarak elde edilir. Bunun nasil yapildiginida Bilgisayar bolumlerinin 3,4 siniflarinda yada master doktora seviyelerinde ogreniriz.

Bir COOPERATIVE RTOS ilede bir cok gercek zamanli is yapilabilir Ornegin ayni anda 100binlerce cagri isleyebilen Alcatel S12 santrallerindeki RTOS bir cooperative rtosdu.
Yani aldatmaca filan yok, neyi nasil yapacagini bilmemece var. Ornegin ben derin S12 bilgimi ve cooperative rtoslardaki tecrubemi kullanarak herhangi bir urunu ccs c rtos ve kendi yazacagim bir takim fonksiyonlarla yapablirim.

Rtos adinin kapsadigi buyuk ve karisik bilgi kumesini, bir iki ornekle anlayabilmek pek mumkun degil.

Keske ingilizce bilginiz cok iyi olsa, bu konuda size daha yardimci olabilsem.

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

bulut_01

Hocam döküman için tşk ederim keşke tr olsaydı bu konuda örnek vererek açıklama yaparsanız burda benim gibi bu konuyu fazla bilmeyen arkadaslarda yararlanır örnek verecek olursam rate ve max kısmı var rate kısmındaki süre boyunca komutlarımız calısacak eger komutlarımız max bölümündeki süreyi geçtiği taktirde yarım bırakılıp diğer task mı geçeçek bu işleyiş hakkında da bilgilerinizi paylaşırsanız daha hakim olacagınız bu konuda.
YENİLMEZ..

foseydon

CCS be freeRTOS hiç duymadım.

Çoğu kişi delay rutinini count yaptırarak geçiriyor. Muhtemelen sende öyle yazmışsındir. Bu durumda, delay rutinini içine yazdığın task in öncelik sırası en büyük ise programı bloklarsin. O tasktan çıkamazsın.

FreeRTOS un kendi delay rutinini var, onu kullanman gerekiyor. Çalışma mantığı olarak, FreeRTOS bir Timer a bağlı olarak çalışıyor, bu Timer FreeRTOS icin tick adi verilen eş zaman aralığına sahip interrupt üretiyor. Her tick interrupt i geldiginde ve task rutinini işini bitirdiğinde ve kendin cagirirsan task scheduler adı verilen ve hangi taşkın çalışması gerektiğine karar veren mekanizma çağırılır. FreeRTOS un kendi delay rutinini çağırdığın zaman, task scheduler i cagirir, scheduler sıradaki taşla zaman verir ve senin belirlediğini delay süresi için her Tick the counter artırır. Counter taşınca, delay koydugun task i cagirir. Kabaca böyle.

mufitsozen

Alıntı yapılan: bulut_01 - 03 Aralık 2017, 01:48:09
Hocam döküman için tşk ederim keşke tr olsaydı bu konuda örnek vererek açıklama yaparsanız burda benim gibi bu konuyu fazla bilmeyen arkadaslarda yararlanır örnek verecek olursam rate ve max kısmı var rate kısmındaki süre boyunca komutlarımız calısacak eger komutlarımız max bölümündeki süreyi geçtiği taktirde yarım bırakılıp diğer task mı geçeçek bu işleyiş hakkında da bilgilerinizi paylaşırsanız daha hakim olacagınız bu konuda.

Rate taskin kosacagi period ve max ise en fazla ne kadar surecegi. Butun tasklerin max surelerine bakarak timeri nasil kullanacagini hesapliyor. Benim verdigim  dokumanda 10 bolumde cok ayrinti vermeden anlatiyor.

Task gecisi diye bir sey yok, task isini bitirince oburlerine geciyor. Otomatik bir kontrol soz konusu degil.(ccs rtos baglaminda)

Atolyem ankarada ben ise artik emekli oldum urladayim. Yanimda kullanacagim bir dev kit yada pc bile yok, bu yaziyida tabletden yaziyorum. Bu yuzden uzulerekte olsa size yardimci olacak ornekler veremiyecegim.

Yapmak istediklerinizi yapabilirsiniz, ama kolay, kisa ve cabuk bir sekilde mumkun degil. Yinede rtos ile calismak icin en elzem kavramlardan biri FSM (finite state machine) bu konuda turkce kaynak bulanilirseniz ccs rtos ortamini kullanarak delay vb konuladda cozumler yapabilirsiniz diye dusunuyorum.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.