Rtos ile aynı anda 3 işlem.

Başlatan ricety, 19 Nisan 2012, 21:01:30

ricety

Merhabalar rtosu sizler sayesinde anladığım kadarı ile bi proje gerçekleştirmek istiyorum. sizlere sorum şu ;

1. TASK da saate ait kodlar olcak
2. TASK da termometreye ait kodlar olcak
3. TASK da ise benim kendime ait ana programım olacak.

bunu bağlarsak ise , GRafik lcd ekranda hepsini aynı anda ekrana yansıtıcam göstereceğim.  Yani bi köşede termometre, bi köşede saat ve takvim.  bir köşedede benim yazdıgım ve ekrana yazdıgım yazılar.

bunu rtos ile gerçekleştirebilirmiyim ?

veya başka bir sistem önerebilirmisiniz

Tagli

Grafik LCD, paylaşılması gereken bir kaynaktır. RTOS'lar hakkında fazla bilgim yok, ancak basit bir işletim sisteminin bu işin üstesinden gelebileceğini pek sanmıyorum. Ama yapılabilir elbette.

Tavsiyem GLCD erişiminden tek bir task'in (bundan sonra görev diyeceğim) sorumlu olması. Arada da bir çeşit tampon bellek sistemi olmalı. GLCD yönetici görevi, tampon belleğe yazılan verileri değerlendirerek belli aralıklarla, mesela saniyede 5 kez, GLCD'yi güncelleyecek. Tüm GLCD pixellerini hafızada tutmak, çok yer kaplayacağı için pek mantıklı gözükmüyor. Onun yerine, GLCD görevinin bakması için bir iş havuzuna iş emirleri atılması bence daha mantıklı.

İş havuzu, senin tasarlayacağın bir veri yapısına sahip bir FIFO (ilk giren ilk çıkar) tamponu olmalı. GLCD görevi, örneğin 200 ms'de bir bu havuzu tarayarak buraya bırakılmış işleri yapmalı. Diğer görevlerdeki GLCD fonksiyonlarının yaptığı şey, sadece ilgili emri bu iş havuzu kuyruğunun arkasına eklemek olacak. Önemli bir nokta da şu: İş havuzu, ortak erişimli bir bölge olduğu için RTOS tarafından sağlanan yöntemlerle korunmaya alınmalı ve aynı anda iki görev tarafından yazım amacıyla erişilmesi engellenmeli. Bu işi yapan mekanizmalar genelde mutex veya semaphore olarak adlandırılır.
Gökçe Tağlıoğlu

CoşkuN

Bence grafik ekranın bütün tasklar tarafından kullanılmasına gerek yok. Diğer tasklar kendilerine ait olan bilgileri ortak bir veri yapısına kopyalar. Grafik ekrandan sorumlu task da bu bilgilerle ekranı günceller. Tabi ortak veri yapısına erişimde koruma (mutex vs...) konulmalı...