/i/Yazılım

Umuyoruz ki geleceğin yazılımcıları bu altinciden çıkacak!
    başlık yok! burası bom boş!
  1. 1.
    +21 -5
    Biliyorsunuz ki AVR mikrodenetleyiciler Harvard mimarisini temel alıyor, yani programın çalıştığı bellek ile değişkenlerin tutulduğu bellek farklı. Bu yüzden SD kart gibi dış bir ortamdan program çalıştırılamıyor. bootloader çözümleriyle program belleğine HEX dosyası yazılabilse bile benim yaptığım sistem kadar özgür değil ve yüklenebilecek dosyanın boyutu program belleğiyle kısıtlı.

    Ben ise AVR mikrodenetleyiciler için basit bir bytecode interpreted dil geliştiriyorum. Java ve .NET dillerinin çalışma mantığıyla aynı yani.

    Bytecode interpreted dillerin Python gibi interpreted dillerden farkı ise yazılmış kodun doğrudan interpreter tarafından okutulmaması, bunun yerine bir derleyici tarafından bytecode'a (sanal makinenin anlayacağı özel bir tür makine dili) derlenmesi ve runtime esnasında bir sanal makine vasıtasıyla çalıştırıldığı işlemcinin makine dili komutlarına dönüştürülerek uygulanmasıdır. Dolayısıyla normal interpreted dillerden daha az yer kaplar ve daha performanslıdır.

    SD karttan, RAM'den hatta belki program belleğinden yüklenecek bir dosyayı yazdığım sanal makine ile yorumlayıp anlık olarak çalıştıracak. Bu sayede çalıştırılacak dosya boyutunun herhangi bir bir sınırı olmayacak.

    Dahası istenilen dilden benim bytecode dilime dönüşüm yapacak basit bir derleyici yazılabilir, bu sayede teorik olarak her dil ile AVR'lara program yazılabilir.

    Dilin adı UBL. Şimdilik yalnızca basit bir assembler yazdım, bytecode komutlarının mnemonic bir karşılığından ibaret yani. Bildiğimiz assembly gibi kısacası.

    Yakında C syntax'ine sahip bir derleyici yazmayı düşünüyorum, bu sayede çok daha kolay bir şekilde bytecode dilime uygun programlar yazılabilir.






    Şimdilik komutlar bunlar. AVR portlarına doğrudan erişim sağlayacak komutların üzerinde çalışıyorum. Elle tutulur bir hale geldiğinde derleyiciyi ve yorumlayıcıyı (AVR üzerinde çalışacak) paylaşırım.

    Ha unutmadan, AVR mikrodenetleyiciler Arduino tarafından kullanılıyor, yani bu proje Arduino ile %100 uyumlu.






    Son olarak şimdilik sadece 8-bit AVR mikrodenetleyicileri desteklemeyi düşünüyorum, 16 bit ve 32 bit AVR'lar üzerinde pek çalışmadım.

    Desteklerinizi bekliyorum, geliştirilirse çok güzel bir proje ortaya çıkabilir.

    Edit 1: Komut listesini güncelledim, özellikle register ve pin giriş çıkışları için komutlar ekledim. Onun haricinde Assembler'daki bug'ları gidermeye devam ediyorum.

    Edit 2: Assembler ve sanal makine hazır olmak üzere, çarşamba günü Assembler'ı cuma günü ise sanal makineyi paylaşmayı düşünüyorum.

    Edit 3: Bazı sağlık sorunları nedeniyle yayınlanma tarihi gecikecek muhtemelen:
    (bkz: panpalarım gözüm konusunda acil)
    Tümünü Göster
    ···
  2. 2.
    +15
    Aynen kardesim
    ···
    1. 1.
      0
      sesli güldüm şuku
      ···
  3. 3.
    +2
    o değilde, direktifleri türkçe yapsaydın şekil olurdu kardeşim * Hatta multi direktif yap ingilizcede olsun
    ···
    1. 1.
      0
      Bu tarz komutların birçoğunun doğrudan Türkçe karşılığı yok, zorlama karşılıklar bulunabiliyor ama o da hoş durmuyor, o yüzden ingilizce yaptım komutları.
      ···
    2. 2.
      0
      Türkçe den kastım Türkçe özel kelimeler değilde, ADD argumanı yerine EKLE argumanı
      DELETE argumanı yerine SIL argumanı, çişğü harflerinin olmadığı sadece latin harflerden oluşan bir argumanda olabilir.

      Bu arada ingilizce mutlaka yazılım programlamada olmazsa olmazdır zaten.
      ···
    3. 3.
      0
      Panpa basit komutlarda sorun yok fakat daha karmaşık isimli komutlara düzgün karşılık bulunamıyor. Mesela JAES komutu için (Jump If Above or Equal [Signed]) tam anlamıyla uygun bir çeviri yapılamıyor. Direkt çevrilirse "Yukarısında veya Eşitse Zıpla (imzalı)" çıkıyor ki mantıksız. Biraz daha düzgün çevrilirse "Büyük veya Eşitse Atla (işaretli)" oluyor, fakat hem zaten Assembly bilenler için hem de yazma zorluğu açısından JAES kullanmak BEAi / BEAI kullanmaktan daha kolay oluyor.
      ···
    4. diğerleri 1
  4. 4.
    +4 -2
    AKP subliminali var !!!
    ···
  5. 5.
    +1
    panpa sen bize fazlasın harvarda git
    ···
  6. 6.
    +1
    mantıklı gibi
    ···
  7. 7.
    +1
    yav burda herşeyi yapabilen insanlar var ama nedense ben bir autocad kullanan adama rastlayamadım amk
    ···
    1. 1.
      +1
      yavaş yavaş herşey panpa
      ···
    2. 2.
      +2
      Ulan ben de aha buldum diye sevindim derken yine elim gibimde kaldı
      ···
    3. 3.
      +1
      autocad bilince ne olacak çok zor bi program değil lise ve üniversitede aldığım bilgi ile çoğu çizimi yaparım diye düşünüyorum solid daha iyi bence tabi katı modelleme farkı var hemde eğlenceli
      ···
    4. diğerleri 1
  8. 8.
    +1
    anlayamadığım kadarıyla sınırsız hafıza kartı yapıcaksın
    ···
  9. 9.
    +1
    okur bu çocuk
    ···
  10. 10.
    0
    Yardimci olmak isterim. Birlikte de calisabiliriz.
    ···
  11. 11.
    0
    Turkcemizi bozmaya calisiyoe cugulayin sunu(!)
    Edit: Ugrasmissin emegine saglik tebrikler.
    ···
  12. 12.
    0
    tebrikler dostum şukunu verdim böyle başlıkları görmek beni mutlu ediyor.. devam
    ···
  13. 13.
    0
    tamam inandık.
    ···
  14. 14.
    0
    biz de anca "bEylER oYun yaBdıM DeSTk Ltfen" diye dolaşalım amk

    edit: githubdan kaynak falan paylaşsana panpa destek gelir muhakkaka
    ···
  15. 15.
    0
    Aynen öyle knk
    ···
  16. 16.
    0
    sizi r&d kısmımıza alalım *
    ···
  17. 17.
    0
    ben bu işlerden anlamam arduino gibi bir şey geliştireceksen motor sürücüsü'de kart'a dahil olsun harici almayak panpa
    ···
  18. 18.
    0
    c değil de
    panpa java seviyesine çıkarakbunu
    herhangi bişe olursa söle sadece
    hatta ima et
    ayarlarız
    ···
    1. 1.
      0
      java seviyesi diye bir şey yok pnp. java görsel bir programlama dili, 8bitte pek bir anlamı olmadığını düşünüyorum. he yapamazmısın yaparsın. ama fazla şişirir diye düşünüyorum.
      ···
      1. 1.
        -9
        Yani yani
        if else olsun diyorum yani
        ···
      2. 2.
        +12
        c de if else yok mu sanki dalyarak cahil zütveren ne dedigini kendi bile anlamiyor
        ···
  19. 19.
    0
    (bkz: 874 incipuan şerefine)
    ···
  20. 20.
    0
    rezzzzzzz
    ···