CHSHELL

Başlatan ArifAhmet, 13 Ocak 2016, 16:13:56

ArifAhmet

Herkese merhabalar,

Bir süre önce forumda 'Nasıl Shell Yazılır' diye bir konu açmıştım. Oradan gelen fikirler ve çokça araştırma sonrası STM32F7 DISCO üzerine minik bir shell yazdım. Henüz çok ilkel, çok basit bir yapısı var. Şuan işleri biraz daha ileri götürmek için Lexical analizlere bakıyorum.

Bu konuyu açmamın sebebi artık yetişememem. İşlerin getirdiği yoğunluk ve karmaşıklaşan sistem projeyi bayağı yavaşlatıyor. Aslında ilk stabil versiyon çıkmadan yayınlamayacaktım ama bu gidişle baya geç çıkacak gibi duruyor. Aşağıdaki linkte kaynak kodlar var. Herkesin inceleyip bişeyler katması çok iyi olur.

Kısaca chshell'den ve amacından bahsedeyim.

Chshell aslında bilgisayardan bağımsız bir platform oluşturmak. Tabi bilgisayardaki yazılımlarda bulunan tüm o gelişmiş tool'lardan bahsetmiyorum. Örneğin adam terminale şöyle bir komut yazsın;

terminal> gpio -mode o -port i1
terminal> gpio -wr 1


Bu komut i1 pinine bağlı ledi yakıyor.

Komut yapısı POSIX'e uygun çünkü unix'in getopt kütüphanelerini kullanıyorum.

Burada bir video var.
https://twitter.com/CELIMSIZHEYKIR/status/677219990903332866

Fakat bir diğer nokta şu. Ben girdileri usb'den alıyorum ve kitin üzerindeki ekranı kullanıyorum. Buda çok fazla pin kullandığım manasına geliyor. Bunun için chshell stand alone mode özelliği gibi birşey düşünüyorum. Sadece SPI üzerinden sd karta bağlanacak ve oradaki yazılmış scripti alıp çalıştıracak.

Şuan aklıma bunlar geliyor. Gerisini buradan tartışabiliriz.

Herkese iyi çalışmalar.

Not : chshell_core dosyasında bugün birkaç yenilik yaptım ama deneme fırsatım olmadı. Birkaç bug olabilir. Eğer derleyip sıkıntı yaşayan varsa eski versiyonunu gönderebilirim.

Kaynak kodlar; https://drive.google.com/folderview?id=0B2aMkZ61kpETczVwQXFFUnpnbnc&usp=sharing
Yaşasın Open Source!

MrDarK

Merhaba güzel bir opensource kaynağa benziyor. STM32F7 discovery olmasaydı katılmak isterdim. Desene almak lazım ondan da :) Yaptığınız yapıya kabaca işletim sistemi denilebilir mi ?
Picproje Eğitim Gönüllüleri ~ MrDarK

ArifAhmet

Merhabalar,

öncelikle ilk versiyonunu stm32f4 uzerıne yapmıştım. HAL kütüphanelerini kullandığım için çok rahat geçirebilirsiniz f4 üzerine.

Yaptığım şey aslında bir işletim sistemi değil. Basit olarak bir girdi alıyor, üzerinde text proccess yapıp onu gerekli bir modüle yolluyor. Modülde kodun geri kalanını parse edip çalıştırıyor. ögnrğin gpio ile başlayan bir komut yazdığınızda core modülü onu chshell_module_gpio diye bir dosyaya yollar. Orada kodun geri kalanı örneğin -mode o komutunu alır ve mode gördüğünde GPIO_Init struct'ının Mode'una output yazıyor.
Yaşasın Open Source!