Picproje Elektronik Sitesi

BİLGİSAYAR => Gömülü İşletim Sistemleri => Konuyu başlatan: armsistem - 18 Eylül 2013, 19:08:11

Başlık: Gömülü sistem soruları - 1
Gönderen: armsistem - 18 Eylül 2013, 19:08:11
Arkadaşlar merhaba ; aşağıdaki yazıyı gördüm sevindirik oldum


<CR><LF>
.---O---.                                           <CR><LF>
|       |                  .-.           o o        <CR><LF>
|   |   |-----.-----.-----.| |   .----..-----.-----.<CR><LF>
|       |     | __  |  ---'| '--.|  .-'|     |     |<CR><LF>
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |<CR><LF>
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'<CR><LF>
                -'  |<CR><LF>
                '---'<CR><LF>



ls -a yazdım aşağıdaki liste geldi.

.                          .dmrc                  .nautilus<CR><LF>
..                         .gconf                 .ssh<CR><LF>
.AbiSuite             .gnome2             .themes<CR><LF>
.ICEauthority      .gvfs                   .thumbnails<CR><LF>
.bash_history     .htoprc                .xsession-errors<CR><LF>
.config                .icons                   .xsession-errors.old<CR><LF>
.dbus                 .local                    Desktop<CR><LF>
root@beagleboard:~#


sanıyorum yavaş yavaş ilerleme kaydediyorum.... peki bu cihaza bir 7" display takmak istiyorum veya eeprom dan veri yazmak-okumak istiyorum.
Bu iş için libraryler mi devreye giriyor ? Veya out için ne yapmak gerekiyor ?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: polleme - 18 Eylül 2013, 19:12:02
Kartınız Beagleboard olduğuna gore bunun GPIO portlarını bulup onlara LCD ekranı bağlamanız gerekecek. Eğer hiç GPIO uygulaması yapmadıysanız o dünyanın "HelloWorld" ü olan LED yakıp söndürme, butona basınca LED yakma gibi uygulamalardan başlamanızı tavsiye ederim. LCD ve EEPROM nispeten karmaşık uygulamalar.

Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: z - 18 Eylül 2013, 19:24:29
Linux, Android gibi işletim sistemi barındıran kartlarda GPIO vs donanımlara doğrudan user programlar erişebiliyormu? Yoksa işletim sistemi üzerindeki hazır fonksiyonlarımı kullanmak gerekiyor?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: polleme - 18 Eylül 2013, 19:29:18
Linux'ta herşey (printer, USB, seri, GPIO vs) bir dosya ile temsil edilir. Siz eğer o donanım birimini temsil eden dosyaya bir veri yazarsanız o porta erişmiş ve veri göndermiş olursunuz. Linux'ta örneğin bir metin dosyası açıp karakter yazmak ile seri portu açıp karakter yazmak aynı şekilde yapılıyor. Bu sebeple Linux shell üzerinden komutlarla GPIO portlarına erişmek mümkün. Eğer bir programlama dili üzerinden erişmek isterseniz o dilin kütüphanelerini kullanabileceğiniz gibi programlama dili içinde Linux shell komutlarını da işlemeniz mümkün.

Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: armsistem - 18 Eylül 2013, 19:59:59
Alıntı yapılan: polleme - 18 Eylül 2013, 19:29:18
Linux'ta herşey (printer, USB, seri, GPIO vs) bir dosya ile temsil edilir. Siz eğer o donanım birimini temsil eden dosyaya bir veri yazarsanız o porta erişmiş ve veri göndermiş olursunuz. Linux'ta örneğin bir metin dosyası açıp karakter yazmak ile seri portu açıp karakter yazmak aynı şekilde yapılıyor. Bu sebeple Linux shell üzerinden komutlarla GPIO portlarına erişmek mümkün. Eğer bir programlama dili üzerinden erişmek isterseniz o dilin kütüphanelerini kullanabileceğiniz gibi programlama dili içinde Linux shell komutlarını da işlemeniz mümkün.

Hocam çok açıklayıcı olmuş ,
-  QT tarzı ide programı ile bu iş daha kolay yapılabilir mi ? Yoksa alakası yok mu ?
-  Donanımsal ekletilerimi (lcd+eeprom) bunu başlangıçta mı dosya mantığında oluşturmam gerekiyor ?
-  İlk olarak kernel derlemeyi denedim neden denedim ben bile bilmiyorum ? Bu neden gerekli ?
-  Kelime olarak U-boot-Kernel vs. hepsinin tanımları var pratik olarak neden bunlara direk erişip yeniden derlemek isteyeyim ki ?
- Bence bu işte önemli olan mantığın oturmasıdır ?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: yamak - 18 Eylül 2013, 20:00:36
Alıntı yapılan: z - 18 Eylül 2013, 19:24:29
Linux, Android gibi işletim sistemi barındıran kartlarda GPIO vs donanımlara doğrudan user programlar erişebiliyormu? Yoksa işletim sistemi üzerindeki hazır fonksiyonlarımı kullanmak gerekiyor?
Hocam işletim sisteminde eğer gerekli donanımın driver ı mevcutsa durum @polleme'nin dediği gibi oluyor.Eğer driver yoksa mmap fonksiyonu aracığılıyla fiziksel belleğe erişip register lar üzerinden erişebiliriz
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: z - 18 Eylül 2013, 20:08:35
Peki interrupt rutini yazılabiliyormu? Demek istediğim mesela seri portu kullanacak yazılım yapacağız ve interruptlara biz kendimiz cevap vereceğiz. Linux vs üzerinde bu işler nasıl oluyor?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: polleme - 18 Eylül 2013, 20:08:51
Alıntı yapılan: armsistem - 18 Eylül 2013, 19:59:59
Hocam çok açıklayıcı olmuş ,
-  QT tarzı ide programı ile bu iş daha kolay yapılabilir mi ? Yoksa alakası yok mu ?
-  Donanımsal ekletilerimi (lcd+eeprom) bunu başlangıçta mı dosya mantığında oluşturmam gerekiyor ?
-  İlk olarak kernel derlemeyi denedim neden denedim ben bile bilmiyorum ? Bu neden gerekli ?
-  Kelime olarak U-boot-Kernel vs. hepsinin tanımları var pratik olarak neden bunlara direk erişip yeniden derlemek isteyeyim ki ?
- Bence bu işte önemli olan mantığın oturmasıdır ?

- Qt ile erişimi görsel olarak gerçekleştirebilirsiniz. Erişimin sağlanması daha kolay demek zor, ama görsel bir arayüz üzerinden işlem yapmak daha rahat olur. Qt ile bir dil kullanmak ve programlama yapmak zorundasınız.
- Eklentilerin sürücüleri yüklü ise o eklentiye ait bir dosya zaten var demektir. Yoksa sürücü oluşturmanız veya direkt register erişimi yapmanız gerekir ama sürücü bulmayı veya oluşturmayı öneririm.
- Kernel derleme karmaşık ve tecrübe gerektiren bir iştir. Kernel içine birşeyler eklemek, değiştirmek veya çıkarmak için yeniden derleme gerekebilir ama bence elzem değil. İleride tecrübe kazanınca yapmanız daha doğru.

Öncelikle Linux altyapısına hakimiyet sağlayıp sonar işletim sistemi derinliklerine girmek doğru yol olur.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Icarus - 18 Eylül 2013, 20:40:44
Alıntı yapılan: polleme - 18 Eylül 2013, 19:29:18
Linux'ta herşey (printer, USB, seri, GPIO vs) bir dosya ile temsil edilir. Siz eğer o donanım birimini temsil eden dosyaya bir veri yazarsanız o porta erişmiş ve veri göndermiş olursunuz. Linux'ta örneğin bir metin dosyası açıp karakter yazmak ile seri portu açıp karakter yazmak aynı şekilde yapılıyor. Bu sebeple Linux shell üzerinden komutlarla GPIO portlarına erişmek mümkün. Eğer bir programlama dili üzerinden erişmek isterseniz o dilin kütüphanelerini kullanabileceğiniz gibi programlama dili içinde Linux shell komutlarını da işlemeniz mümkün.
Eriştiğiniz dosya gerçek port (GPIO) değil. Ör: Siz /dev/tty'e birşeyler yazdığınızda sadece serial port sürücüsüne "acaba bunları benim için gönderebilirmisin ?" diyorsunuz. Sürücü gönderir veya göndermez.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: polleme - 18 Eylül 2013, 22:24:30
Alıntı yapılan: Icarus - 18 Eylül 2013, 20:40:44
Eriştiğiniz dosya gerçek port (GPIO) değil. Ör: Siz /dev/tty'e birşeyler yazdığınızda sadece serial port sürücüsüne "acaba bunları benim için gönderebilirmisin ?" diyorsunuz. Sürücü gönderir veya göndermez.

Muhakkak dosya gerçek port değil. Sadece onu temsil etmektedir. Dediğiniz gibi bilgiyi göndermesini söylersiniz ama gidip gitmediğinin kontrolü gerekirse yapılmalı.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: X-Fi - 18 Eylül 2013, 23:06:14
Yeri gelmişken bişey sormak istiyorum;

*.ko (kernel output) uzantılı dosyaların üzerinde nasıl değişiklik yapabiliriz?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: X-Fi - 19 Eylül 2013, 10:28:19
Alıntı yapılan: gerbay - 18 Eylül 2013, 23:48:59
hocam .ko lar "kernel object", yukarda behsettiğim "kernel module" ler .ko uzantılı olanlar.  genelde 3. parti sürücüler kernel module olarak yüklenir. değiştirmek için kodları değiştirip kernel object olarak yeniden derlemeniz gerekir.

Hocam diyelim ki açık kaynak kodlu bu linkdeki gibi; https://github.com/notro/fbtft/wiki bir proje var, üzerinde değişiklik yapıp tekrar nasıl derleyebilirim. Bunu linux komutlarıyla mı derliyorum farklı bir gelistirme ortamı mı var? Bu konuları öğrenebileceğim bir kaynak gösterebilirseniz sevinirim.

Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Icarus - 19 Eylül 2013, 10:52:11
Emacs
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Tagli - 19 Eylül 2013, 11:13:46
Alıntı yapılan: Icarus - 19 Eylül 2013, 10:52:11
Emacs
Bu hangi sorunun cevabı?

Alıntı yapılan: X-Fi - 19 Eylül 2013, 10:28:19
Hocam diyelim ki açık kaynak kodlu bu linkdeki gibi; https://github.com/notro/fbtft/wiki bir proje var, üzerinde değişiklik yapıp tekrar nasıl derleyebilirim. Bunu linux komutlarıyla mı derliyorum farklı bir gelistirme ortamı mı var? Bu konuları öğrenebileceğim bir kaynak gösterebilirseniz sevinirim.
Genelde bu tür kodların yanında gelen README dosyasını okumakta fayda var. Anladığım kadarıyla bu kod kernel kodunun içine ekleniyor. README dosyasında anlatmış. Daha sonra ilgili Kconfig ve Makefile dosyaları değiştirilerek sürücünün kernel konfigürasyonu sırasında bir seçenek olarak çıkması sağlanıyor. Bu seçenek "make menuconfig" aşaması sırasında seçildiği zaman kernel derlemesine bu sürücü de katılmış oluyor.

Yani sürücüyü kernel modülü olarak yazmayıp doğrudan içine yerleştirmişler. Bu yüzden kernel'in tekrar derlenmesi gerekiyor. Bunu RPi üzerinde yapmak uzun sürebilir, normal bir bilgisayar üzerinde karşı derleme yapmak daha iyi bir fikir.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Icarus - 19 Eylül 2013, 11:41:40
Alıntı yapılan: Tagli - 19 Eylül 2013, 11:13:46
Bu hangi sorunun cevabı?
Linux için IDE.
Otomatik kod tamamlamadan tutun, otomatik fonksiyon tanımlarını, help'lerini bulmaya kadar herşey var. Aynı zamanda projenizide yönetebiliyorsunuz.
Kısaca bir IDE'nin yapabilceği herşey ve daha fazlası.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: polleme - 19 Eylül 2013, 11:59:35
Emacs üzerinde sadece Lisp ile mi kodlama yapılıyor?
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Tagli - 19 Eylül 2013, 12:10:59
Hayır emacs bir metin editörü. Komut satırı üzerinde çalışıyor ancak grafik arayüzleri de var eğer yüklersen (ki bence gereksiz). Bu şekilde komut satırından çalışan iki önemli metin editöründen biri. Diğeri vim. İkisi de pek çok özellik barındıran, eklentilerle geliştirilebilen ve öğrenilmesi pek de kolay olmayan programlar. Neyse ki kullanmak için tüm özelliklerini bilmeye gerek yok.

emacs'çiler ve vim'ciler, kendi editörlerini hararetle savunur ve diğerini mümkün olduğunca kötülerler. Yani aralarında bir savaş olduğunu söylemek yanlış olmaz. Futbol takımı taraftarları gibidirler.

Bir de nano diye bir editör var. Pek fazla özelliği olmamakla birlikte, kolay kullanıldığı rivayet edilir ve bazıları tarafından bu sebeple tercih edilir. Şahsi görüşüm, acayip kısayollarının hiç de alışılagelmiş olmadığı yönünde. Diğer ikisinden birini kullanmak çok daha mantıklı.

Bir grafik ortamı varsa, gedit veya Geany gibi metin editörlerini kullanmak daha kolay olacaktır. Yine de vim veya emacs'ten birini en temel özellikleri ile bilmek faydalı olabilir.

Neyse, çok yazdım. Sonuçta bunlar sadece metin editörü. (Sadece bu cümlem bile taraftarlarının tepkisini çekmem için yeterli). Üzerlerinde çok kafa yormaya gerek yok. Amaç değil araçlar.
Başlık: Ynt: Gömülü sistem soruları - 1
Gönderen: Icarus - 19 Eylül 2013, 12:17:27
Alıntı yapılan: polleme - 19 Eylül 2013, 11:59:35
Emacs üzerinde sadece Lisp ile mi kodlama yapılıyor?
Ben  C/C++ ve Python IDE'si olarak kullandım.
Fakat Emacs'ın yapısına eklemeler yapmak/değiştirmek istiyorsanız Lisp ile yapmanız gerekiyor.

Alıntı yapılan: Tagli - 19 Eylül 2013, 12:10:59
Hayır emacs bir metin editörü.
...
Bir grafik ortamı varsa, gedit veya Geany gibi metin editörlerini kullanmak daha kolay olacaktır.
Emacs'ı bir bahsettiğim özelliklerine sahip bir C++ IDE'si haline getirebilirsiniz.
Fakat GEdit sadece bir metin editörüdür. En fazla keyword'lere highlight yapar...