cocoOS RTOS & PIC18

Başlatan quarko, 30 Temmuz 2015, 23:35:18

quarko

Merhabalar,
PIC18F4520 üzerinde cocoOS RTOS ile testler yapıyorum. 4 adet task ım var. Eğer bu tasklar aynı priority lere sahip ise mcu assert yiyor. Priority lerini sırayla 0,1,2,3 diye verince normal beklenildiği gibi çalışıyor. (Round Robin mode aktif değil) Aynı priority lere sahip tasklarım olamaz mı acaba ? Sebep ne olabilir...
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

AsHeS

Bütün tasklar aynı önceliğe sahipse ve taskları hiç bırakmıyorsanız (işletim sisteminin delay fonksiyonları ile) bu normal bir durumdur.

quarko

Taskları bırakmıyor değilim. Her task işini yaptıktan sonra beklemeye geçiyor zaten. Beklediğim şey, önceliği aynı olan tasklarımı sırasıyla çalıştırması. Ama maalesef mcu, cocoOS taskları create ederken assert yiyor.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

Erhan YILMAZ

Diğer rtosları bilmem ama cocoos'ta taskların öncelikleri aynı olmuyordu. Dokümanını dikkatli inceleyiniz. Zamanında msp430 için deneme yapmıştım.

http://www.mcu-turkey.com/msp430-ile-cocoos-rtos-uygulamasi

quarko

Daha önce kısa bir süre FreeRTOS la ilgilenmiştim. Orada öyle bir problem yoktu. Mantıken task lar neden aynı önceliğe sahip olamasın ki. Bu gayet olağan birşey. Galiba cocoOS ta bir bug bu :) Dökümanına bir göz atalım bakalım... Sizin yazınızı da okudum, teşekkür ederim...
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

quarko

Alıntı yapılan: Erhan YILMAZ - 01 Ağustos 2015, 03:56:41
Diğer rtosları bilmem ama cocoos'ta taskların öncelikleri aynı olmuyordu. Dokümanını dikkatli inceleyiniz. Zamanında msp430 için deneme yapmıştım.

Aynı önceliğe sahip iki task olamazmış. CocoOS un web sitesinde böyle bir ifade geçiyor... :)

"There can not be two tasks with same priority."

Taskların priorityl leri 1-254 arasında ayarlanabiliyormuş. En yüksek öncelik '1' imiş.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

tekosis

hocam ne tür uygulamalarda rtos tavsiye edersiniz? şu ana kadar ihtiyaç duymadım ama öğrenmek te gerek.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

X-Fi

#7
Bu işlem FreeRtos un en önemli özelliğinden biri olay time slicing diye geçiyor eşit öncelikte taskları bir arada tick süresinde değiştirerek ilerliyor. Performansın birazını context switching işleminde kaybediyorsunuz ama taskları bir arada işleyebilen birkaç çekirdekli işlemci kullanmış gibi oluyor. Hiç kullanmadım ihtiyaç olmadı ama bilmekte fayda var.

Aktif etmek için freertos config den configUSE_TIME_SLICING bitini set ediyorsunuz.

http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

mufitsozen

#8
Alıntı yapılan: tekosis - 03 Ağustos 2015, 00:45:56
hocam ne tür uygulamalarda rtos tavsiye edersiniz? şu ana kadar ihtiyaç duymadım ama öğrenmek te gerek.

Ben her tur uygulamada tavsiye ederim.

Ornegin birden fazla LED yakip sondurmek vs.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.