Picproje Elektronik Sitesi

BİLGİSAYAR => Linux => Konuyu başlatan: Gökhan BEKEN - 02 Ekim 2015, 12:51:42

Başlık: Kernel space'den user space'e event oluşturmak
Gönderen: Gökhan BEKEN - 02 Ekim 2015, 12:51:42
Yapmak istediğim şu, user space'de yazdığım program, kernel space'de çalışan programa, /dev/modulAdi şeklinde erişiyor, ve istediğim kadar buffer dolduruyor, ancak verinin hazır olup olmadığını bilmediğim için, senkron çalıştıramıyorum.
Bana öyle bir şey lazım ki, kerneldeki buffer dolduğu an, user space'deki çalışan programımda event oluşsun ve kesme fonksiyonuma dallansın.
Yani manüel değil otomatik olması gerekiyor. Bunun nasıl yapıldığını bulamadım. Bilenlerden yardım istiyorum.

Sorunun, geçmişi için şu linke bakabilirsiniz: https://www.picproje.org/index.php/topic,52174.msg474992.html#msg474992 (https://www.picproje.org/index.php/topic,52174.msg474992.html#msg474992)
Başlık: Ynt: Kernel space'den user space'e event oluşturmak
Gönderen: mufitsozen - 02 Ekim 2015, 13:20:53
Normal olarak semaphore'larla yapilabilir. Thread'inizi okuyup hangi OSla calistiginiza bakamadim ama unix varyanti bir isletim sistemi kullandiginizi dusunuyorum.

application da sem_wait, kernel mode'dada sem_post yaparsiniz.
Başlık: Ynt: Kernel space'den user space'e event oluşturmak
Gönderen: Gökhan BEKEN - 02 Ekim 2015, 13:56:46
Evet hocam linux için sordum. Raspberry pi üzerinde çalışıyor kodlarım. Dediklerinizi araştıracağım.
Şu an sürekli while içinde veri var mı diye soruyorum, kernel uygulaması eğer veri hazır ise gönderiyor, hazır değilse göndermiyor,
ve user uygulaması veri okuyamazsa pas geçiyor, okursa işleme alıyor.
Böyle yapınca mantık olarak çalışması lazım ama gecikme oluyor ve boş yere sürekli sorgu yapıyorum.
Bu yüzden otomatikleştirmem lazım.