Dokunmatik ekranlı gömülü bir sistem geliştiriyorum. Dokunmatik ekran hem giriş hem de çıkış olarak çalışır ve grafiksel çıkışı kaplayan "sanal" bir klavye bulunur.
Dokunmatik sensörden girişi okuyan ve kernel.org'daki bu kılavuzun yardımıyla oluşturulan tuşlara doğru çeviren çalışan bir aygıt sürücüm var . Bu sürücüyü ekrana görüntü çıkışını da işleyecek şekilde genişletmek istiyorum.
Hem getty hem de X'i mümkün olduğunca az çoğaltma ile desteklemek istiyorum. Ben en az X gibi kiraz aldı paketleri ile en az Debian varyantı çalıştırıyorum. Ben genel bir GitHub depo dökümü olabilir, ancak bu sürücüyü depo boru hattına almak niyetinde değilim.
Ekran görüntülerinin çıktısı şu anda çirkin bir geçici çözümle yapılır: bir ekrana bağlı olmamasına rağmen CPU'nun gömülü grafik donanımına renderlemeyi zorlamak için bir önyükleme seçeneği ve bu arabelleği sürekli olarak ekrandan sıyıryan bir daemon, bir avuç önceden klavyeyi görsel olarak oluşturmak için pikselleri tanımladı ve gerçek ekrana doğru itti.
Bu, ekran cihazının beklediği dili doğru bir şekilde anladığımı kanıtladığım bir kavram kanıtı olarak çalışır, ancak açıkça en uygunudur.
kernel.org
Ayrıca "DRM" aygıt sürücüleri için bir rehber vardır, ancak bu donanımımın neler yapabileceğine dair ciddi bir aşırılık gibi görünüyor:
Linux DRM katmanı, genellikle 3B grafik hızlandırmaya uygun programlanabilir boru hatlarını içeren karmaşık grafik cihazlarının ihtiyaçlarını desteklemeye yönelik kod içerir.
Donanımımın hiçbirinde 3D hızlandırmaya benzeyen bir şey yok, bu yüzden muhtemelen istediğim şey olmadığı sonucuna varıyorum.
Hangi alt sistemi / API'yi kullanmalıyım? Eksik bir terminolojinin bir parçasını aramalarımı tutan şey olarak anlıyorum, ancak bunu nasıl yapacağınız hakkında daha fazla bilgi takdir edilecektir.
Donanım ayrıntıları (muhtemelen ilgisiz): CPU ve ekran, CPU'nun yerel olarak desteklemediği 8080-esque paralel protokolü ile iletişim kurar, bu yüzden GPIO'larla taklit ediyorum (mmap aracılığıyla kayıtları manipüle ederek).
Tam ekran görüntüsü göndermek yaklaşık 20 ms sürer, ancak gömülü grafik arabelleğinden tam bir kopya elde etmek ~ 180 ms sürer, bu nedenle bu adımı atlamak en önemli hedeftir. Ekran donanımı, tüm kare değerinde veriyi tutmak için yeterli SGRAM belleği içerir ve dikdörtgen bir alt bölge yazmayı destekler, bu nedenle ekranın yalnızca değişen kısmını güncellemek için bir kanca istenir.
Ekran, gelen verilerin zamanlaması ile ilgili değildir. Dokunmatik sensör girişi, CPU ile desteklediği I²C aracılığıyla CPU ile iletişim kuran özel olarak oluşturulmuş bir IC tarafından işlenir . Mevcut sürücü linux/input-polldev.h
arayüzü kullanır . CPU bir Broadcom BCM2835 , ekran gömülü Himax HX8357 denetleyiciye sahip bir TFT , dokunmatik ekran sensör kod çözücüsü bir ST STMPE610 ve HX8357 ile BCM2835 arasında bir voltaj seviye kaydırıcı (Nexperia 74LVCH245A ) var. Talep üzerine daha fazla ayrıntı verilebilir.