STM32F429 Discovery Linux kurulumu

Başlatan Mucit23, 22 Eylül 2014, 00:37:36

Gökhan BEKEN

O video zaten yukarıda verilmişti :)
Özel mesaj okumuyorum, lütfen göndermeyin.

Karamel

hocam ozur dilerim telefondan baktigim icin gorememistim mucit hocamin verdigi videoyu....  ::) hocam sahane birsey bu uclinux. cok etkilendim gercekten.

yldzelektronik

Alıntı yapılan: meftun - 22 Eylül 2014, 17:08:56
...
Gerçek zamanlılıkla hiç bir alakası yok. Bu işlemcilerin içinde zaten RTC(real time clock) var, olmasa bile harici bir RTC çipi takılarak gerçek zamanlı yapılabilir.

...

Bu kısmı yukarıda verilen;

Alıntı yapılan: ArifAhmet - 22 Eylül 2014, 16:37:19
Büyük ihtimalle portlara gerçek zamanlı erişim vs. şeylerdir.

iletisine cevaben yazıldığını düşündüm.Cevabın biraz kafamı karıştırdı.Portalara gerçek zamanlı erişim ile rtc (real time clock) arasında nasıl bir bağ var?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

Gökhan BEKEN

Evet o iletiye cevaben yazdım. İşletim sistemlerinin amacı herşeyi zamanında yapmak değildir. Onların bir sürü görevi var, bir taraftan ekran sürüyor, bir yandan kullanıcıdan bilgi alıyor(klavye, mouse vs), bir yandan açık programların işlerini görüyor, bir yandan internete bağlı, daha bir ton işi var. Sizin verdiğiniz bir emri, alır almaz yerine getiremez, her işi sıraya koyar, yeri geldiğinde bakar. Sonuçta multi-tasking olayıdır bu.
Özel mesaj okumuyorum, lütfen göndermeyin.

yldzelektronik

Alıntı yapılan: meftun - 23 Eylül 2014, 09:41:08
Evet o iletiye cevaben yazdım. İşletim sistemlerinin amacı herşeyi zamanında yapmak değildir. Onların bir sürü görevi var, bir taraftan ekran sürüyor, bir yandan kullanıcıdan bilgi alıyor(klavye, mouse vs), bir yandan açık programların işlerini görüyor, bir yandan internete bağlı, daha bir ton işi var. Sizin verdiğiniz bir emri, alır almaz yerine getiremez, her işi sıraya koyar, yeri geldiğinde bakar. Sonuçta multi-tasking olayıdır bu.

Bunları biliyorum. Ayrıca işletim sisteminin ne yaptığını kısaca anlatan güzel bir izahat.Fakat sorduğum şey farklıydı ve cevap alamadığımı düşünüyorum;

Alıntı yapılan: yldzelektronik - 23 Eylül 2014, 08:07:03
...
Portalara gerçek zamanlı erişim ile rtc (real time clock) arasında nasıl bir bağ var?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

yamak

Alıntı YapPortalara gerçek zamanlı erişim ile rtc (real time clock) arasında nasıl bir bağ var?
Hiçbir bağ yok.Alakaları yok yani.

Gökhan BEKEN

Alıntı yapılan: yldzelektronik - 23 Eylül 2014, 08:07:03
Portalara gerçek zamanlı erişim ile rtc (real time clock) arasında nasıl bir bağ var?
Portlara gerçek zamanlı erişim ne demek tam açık değil ama,
Ben şunu anlıyorum: "şu saatte, şu dakikada, şu saniyede, şu milisaniyede, şu portun şu bitini 1 yap."
Böyle birşey için MCU'nun zaten kendi RTC'si var. RTC alarmı kurarsın, alarm saati geldiğinde görevini yapar. İşte bu olay "Portalara gerçek zamanlı erişim ile rtc (real time clock) arasındaki ilişki" dir.
Böyle birşey için uclinux kurmaya hiç gerek yok.

İşletim sistemini kurmaktaki amaç olsa olsa, bilgisayar için derlenmiş programları çalıştırmak olabilir. Örneğin bir stm32'de veya herhangi bir MCU'da mysql veri tabanı kuramazsınız. Bunu yapabilmeniz için işletim sistemi olması gerekir. İşte bu nokta da uclinux kurulabilir.
Özel mesaj okumuyorum, lütfen göndermeyin.

yldzelektronik

Alıntı yapılan: yamak - 23 Eylül 2014, 10:44:54
Hiçbir bağ yok.Alakaları yok yani.

Ben de böyle biliyorum.

Alıntı yapılan: ArifAhmet - 22 Eylül 2014, 16:37:19
Büyük ihtimalle portlara gerçek zamanlı erişim vs. şeylerdir.

Alıntı yapılan: meftun - 22 Eylül 2014, 17:08:56
Linux bir işletim sistemi, işlemciye makina kodu atmak yerine, işletim sisteminin anlayacağı programları yükleyebilirsiniz. İşletim sisteminin desteklediği herşeyi kullanabilirsiniz. Gerçek zamanlılıkla hiç bir alakası yok. Bu işlemcilerin içinde zaten RTC(real time clock) var, olmasa bile harici bir RTC çipi takılarak gerçek zamanlı yapılabilir. RTOS ile de karıştırmamak lazım, çünkü amaç gerçek zaman değil.

Şu iki iletiyi yanlış anlamışım. @meftun'un iletisini yanlış yorumladığımdan olmuş karmaşa  :-[
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

Karamel

Meftun hocam rtos demek real time operation systems yani isletim sistemi. yani gorevler var.(tasks)gorevler gorev onceliklerine gore bolunerek sirali olarak isleniyor. yani duz program yazdigimizda delay lerde mcu bosa brkliyor. rtos ta beklemiyor ve calisiyor. bunu soyle dusunebiliriz. sd card a bir yandan birseyler kopayalarken bir yandanda baska bir is yapiyoruz. fiziksel olarak ayni anda yapilmiyorlar ama yapiyormus gibi gorunuyorlar. Rtos hakkinda benim bildiklerim bunlar ama hatam varsa ve buyuklerim duzeltirse cok memnum olurum ::)

Gökhan BEKEN

RTOS'u biliyorum ve gerektiğinde kullanıyorum. Ben RTC'den ve alarmdan bahsettim.
Neyse konuyu çok saptırdık, konu ucLinux.
Özel mesaj okumuyorum, lütfen göndermeyin.

yldzelektronik

Bir aralar sanki @z os ile kendi donanımına özel programlar yazmaktan söz ediyordu.Sanki kartı için uygulama programları gibiydi.Öyle aklımda kalmış.

uCLinux sanki bu için ideal gibi.Aramızda uCLinux kuran/port eden (port etmek doğru tabir midir bilemedim ama..) var mı?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

yamak

Hocam ucLinux için 1.5-2 Mb flash,8 mb da ram gerekiyormuş.Yani harici ram kullanmak zorundasınız ucLinux için.
http://www.emcraft.com/stm32f429discovery/what-is-minimal-footprint

tmk

#27
Herkese selamlar,

Burada Linux ve uCLinux ile ilgilenen arkadaşları görmek sevindirici. Genelde bu tarz işletim sistemlerinin gömülü sistem uygulamalarında kullanılmasına alışık değilizdir. İşin gerçeği bu tarz işletim sistemlerine ihtiyaç duyan karmaşık ve ağır uygulamalar normalde karşılaştığımız türden değildir. Bundan dolayı Linux porting, device driver ve kernel patching  gibi konular ile uğraşanların sayısı ülkemizde çok fazla değildir. Burada Linux üzerinde çalışan uygulamalar ile native olarak yazılmış uygulamalar (aka Baremetal) ın avantaj/dezavantajlarından bahsetmek veya bunları birbiri ile kıyaslamak yanlış olur. İkisininde amacı ve varoluş nedeni farklıdır. Çok kritik zamanlamaların olduğu, ciddi sayıdaki I/O işleminin belli bir zaman aralığında işletilmesi gereken durumlarda "Baremetal" uygulamalar anlamlı olurken, diğer taraftan USB host/device bağlantının gerekli olduğu, çeşitli dosya sistemlerine (FAT,NTFS,EXT3 vb)
servis verme zorunluğunun olduğu, TCP/UDP/IPv4/IPv6 protokllerinin kullanıldığı birçok uygulama programına (POP3/SMTP,FTP,HTTP/HTTPS,SSL vb) ihtiyaç duyulan durumlarda standard bir işletim sistemi kullanmak daha pratik olabilmektedir. Gerçi ikisinin bir arada olduğu RTLinux gibi gerçek zamanlı işletim ile standart servislerin bir arada bulunduğu örnekler olsa da konumuz bu değildir.

Linux çok uzun yıllardır var olan ve neredeyse tüm işlemci aileleri için portu bulunan çoklu görev yeteneğine sahip açık kaynaklı bir işletim sistemidir. Bu işletim sistemini, herkes alıp kodunu inceleyip, isterse kendi sisteminde kulanabilir. Bunun yanında orijinal sürümü MMU (Memory Management Unit) olmayan işlemcilerde çalışamamaktadır. Bu ayrıntılı bir konudur. Bunun yanında dünyadaki bazı güzel insanlar "bu böyle olmaz" deyip, MMU'less işlemciler için bir porting gerçekleştirmişlerdir (http://www.uclinux.org).  uCLinux'un avantajları ile ilgili bilgiyi bu yazıda bulabilirsiniz http://electronicdesign.com/embedded/practical-advice-running-uclinux-cortex-m3m4
uClinux oldukça uzun zamandır varlığını korumakla beraber, Cortex-M3/Cortex-M4 ü destekleyen sürümü yakın zamanda Emcraft firması tarafından sunulmuştur (http://www.emcraft.com).  Emcraft bu sürümü açık kaynaklı olarak dağıtmaktadır (https://github.com/EmcraftSystems). Bu gelişmenin yanında ST'nin STM32F42x/43x ailesinde SDRAM desteği sunmasıyla beraber uCLinux çalıştırabilme potansiyeli daha da kuvvetlenmiştir. ST'nin bu işlemci ailesi için sunduğu Discovery Kit (http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF259090) uCLinux'u denemek için başlangıç olabilir diye düşünen arkadaşlar, test sürümü için uygun bootlaoder ve çekirdek yamalarını yapıp, olmayan "Virtual Display Driver" larınıda ekleyip STM32F429-DISCO üzerinde uCLinux'u çalıştırmışlardır. Gerekli kaynak kodlarını burada bulabilirsiniz. (https://github.com/robutest)

Keep hacking... 8)

Mucit23

Tayfun Bey, Konuya dahil olduğunuz için teşekkür ederim.

Birkaç soru sormak isterim.

Özellikle daha önce hiç linux ile uğraşmamış birisi Linux'u Öğrenmek adına bu yönde bir çalışmaya girmesi doğrumudur.(UcLinux) Bu tür bir işletim sistemiyle neler yapılabilir? Bize ne tür kolaylıklar sağlar. Örnek verebilirmisiniz?

tmk

Selamlar,

Linux'u, kullanmayı öğrenmek ve yapısını anlamak şeklinde ikiye ayırabiliriz. Öğrenmek kısmı; linux servisleri, sürücü yapısı, çalışma zamanı modülleri gibi daha temel kullanıcı operasyonlarını içerirken, yapısını anlamak biraz daha karmaşık ve mesai harcamayı gerektirir. Aradaki temel fark, kendi donanımınıza linux uyarlama işlemini yapacaksanız yapısını bilmek zorundasınız. Ama elinizdeki donanım için hazırlanmış linux sürümü kullanıp bunun üzerinde uygulama yazacaksanız sadece kullanmayı bilmek yeterli.

Linux (yada başka bir OS) ne işe yarar. Temelde ellinizdeki donanım üzerinde çalışan bir linux sürümü varsa, bu donanım için uygulama programınızı bir host PC üzerinde, standart gereçleri kullanarak (Eclipse, GNU gcc vb) bir masa üstü programı yazıyormuş gibi kolaylıkla yazabilirsiniz. Linux portu olan bütün açık kaynaklı 3. parti yazılım/kütüphaneleri uygulamızda kullanabilirsiniz. Sisteminiz bir ekrana sahipse, her türlü grafik/text uygulamasını host üzerinde yazıp daha sonra kendi sistemize aktarabilirsiniz. Örneğin konu başlığı olan STM32F429 Discovery kit üzerinde, USB host/device sürülerinin eklendiği bir linux dağıtımı olsaydı, mini USB portuna takacağınız bir USB Wifi adapter vasıtasıyla sisteminizi yerel ağınıza bağlayıp, yine USB memory üzerinde bulunan dosya ve uygulamalarınızı, bir WEB server vasıtasıyla internet üzerinden erişip, birçok operasyonu uzaktan yapabilmek için yazacağinız kod, bu işi yapmak için gereken native kodu yazmaktan çok daha kolaydır.