Risc-V Mimarili Bir İşlemciye Geçiş Yapmam İçin, Ne Tavsiye Edebilirsiniz?

picmanya

Üye
Katılım
14 Haziran 2024
Mesajlar
39
Yalnızca Microchip dsPIC30F serisi mikrokontrolörle, küçük çaplı bir kaç kez çalışmışlığım var. Bu çiplerin fiyatı güngeçtikçe artmakda ve bulunabilirliğide zamanla azalacak gibi duruyor.
Yeni projelerde beni yarı yolda bırakabilecektir. Mevcut eski projelerimde gerektikçe bunları kullanırım. Dil olarak yalnızca C den biraz anlıyorum. Asm/Assemly ve farklı bir dilde hiç bilmiyorum. BTK da C++ eğitimine yazıldım. Konsol ekranda pc de C++ programında denemeler yaparak zamanla ilerletebilirim diye düşünüyorum.

İstiyorumki Risc-V tabanlı bir mimariyi kullanan işlemciye geçiş yapayım. Bu geçiş için hiç acelem yok. Sert ve hızlı bir geçiş yapmam gerekmiyor. Bunu bekleyen bir projemde yok.
Sindire sindire zamanla çalışarak anlayarak stressiz bir geçiş yapsam da olacak. Öncelikle Risc-V ye Microchip markalı işlemcide geçmek isterdim. Ama bu mümkün değil.
Bu durumda markayı değiştirmem gerekecektir.
Risc-V İşlemcinin 18-28-40 pinli smd modelleride olmalıki, bunlarıda projelerimde kullanabileyim. Bana küçük çaplı işler gelir genelde. İşlemcinin en az 32/64 Bit olmasıda iyi olacaktır.

32 Bit Pic'ler ve ARM mimarisiyle hiç tanışmamış-görmemiş birisi olarak, kısaca hikayemde yukarıdaki gibiyse, bana ne tavsiye edebilirsiniz?
Risc-V geçişi için günümüzde her yönden en makul çip hangisidir? Bu çip için editör, derleyici, programlama cihazı ve deneme-geliştirme kiti-devresi gibi bilgileride araştırmam gerekecektir.

NOT:
Biliyorum Risc-V beni aşar. Ufakdan led yakıp buton okuyarak, C dili kodlamada kalarak, bir süre vitesi 2'nin üstüne takmadan, ara sokaklarda gezip,
ana caddeye çıkmadan, zamanla birşeyleri becerebilirim diye düşünüyorum. Yapamadığım kısımlarıda değerli görüşlerinize sunarım.

Ne yapayım?
 
Bence C/C++ dillerini olabildiğince iyi öğrenmeye bak. En büyük yatırımı buna yap. Bu dilleri iyi bildikten sonra işlemci Risc-V olmuş, ARM olmuş, PIC olmuş farketmez, hepsinde aynı dili ve çok iyi bildiğin bir dili kullanmış olacaksın. Baktın konjonktürde PIC pahalandı, hemen ARM işlemciye geçersin. Baktın ARM battı, hemen Risc-V ye geçersin.
 
  • Beğen
Reactions: clc
Ben elektronik-yazılım eğitimi almış, üniveriste mezunu biri değilim. Sizler gibi profesyonel hiç değilim.
İngilizcemde yok. Kopyala yapıştır tercümesini al oku anlamaya çalış-anla mantığı geçerli benim için.
İşlemci mimarileri ve markaları arasında, hatta bir markadaki farklı işlemci aileleri arasında bile dikeyi bıraktım, yatay geçişi bile çok zor yapabilirim.
Yapmazsam - yapmak zorunda kalmazsam, daha iyi olur benim için. Bunlar beni çok aşar. Haddimi bilirim ben.
İşlemciden işlemciye geçeyim derken 6 ayım gidiverir benim. Ufacık kartla 2-3 aydır uğraşıp 10 tane forum sorusu soruyorum.

İyi bir Risc-V işlemciyi belirlemeli ve tercihimden emin olduktan sonra, o beni bırakmadıkça ben onu asla bırakmamalı, gereklli yatırımı yapmalı ve zamanla onu öğrenmeli, kullanmayı becerebilmeliyim. Başka yöntemim yok gibi duruyor.
C dili bende bir yere kadar gidiyor. Bunun ötesinde etkin-iyi bir yazılım metodolojisi oluşturabilme kısmı zorluyor beni. Birde işlemci donanımsal modüllerini kullanıp-organize etme ve modülleri aynı yapı içinde birlikte kullanabilme kısımlarında takılıyorum. Tamam buralarıda C dili ile yazılıyor ama işlemciye mimariye göre bir miktar değişiklikler gösterebilip beni zorluyor.

Günümüzde mevcut durumda Risc-V de hangi ürünü kullanmak daha mantıklı oluyor-duruyor.?

Mantıklı bir seçimle işe başlangıç yapabilirsem, belki zamanla zorunda kalırsam.! en azından aynı mimarideki Risc-V işlemci modelleri arasında geçişi yapma yeteneğimi geliştirebilirim. Arm 'ye hiç girmeyeyim istiyorum, o tren kaçtı bende. Direkt Risc-V ye yöneleyim istiyorum.
 
Arm treni nasıl kaçmış oluyor anlamıyorum. İşlemci değiştirmek başta zor gibi geliyor(ki benim sevmediğim bir iştir) ancak cesaret edilip yapıldığında eğer daha yetenekli işlemciye geçildiyse değiyor, ve bu süreci 1-2 kez yapınca aslında işlemci spesifik şeyleri nasıl hızlıca öğrenip kavrayacağınızı anlıyorsunuz.
 
taydin arkadaşımıza katılıyorum. Siz önce C veya C++'da (gömülü sistemler için C++ ile uğraşmaya değmez) bilgisayar ortamında ilerleyin. Bu arada İngilizce öğrenin. İngilizce öğrenmeden RISC-V gömülü sistemler konusunda çok daha yavaş ve verimsiz ilerlersiniz. Bu konular henüz Türkçe literatüre çok yayılmadı. Halbuki önce basit seviyede İngilizce (birkaç yüz kelime ve giriş seviyesinde gramer) öğrenseniz ve sonra RISCV ile ilgilenseniz hedefe daha erken varırsınız, üzerine idare edecek seviyede C ve İngilizce öğrenmiş olarak.

Yine de sorunuzun cevabı:
WeAct CH32V203C8T6 Core Board

ve programlayıcı, aynı mağazadan: https://www.aliexpress.com/item/1005006177751678.html
veya: https://www.aliexpress.com/item/1005004881582037.html

Yazılım geliştirme ortamı: GCC RISC-V toolchain veya WCH'nin Mounriver studio IDE programı.

Komut setini öğrenebileceğiniz emülatör: RARS (java runtime gerekli) veya internette çeşitli online programlar
 
"gömülü sistemler için C++ ile uğraşmaya değmez" bu gerçekten böyleyse çok işime gelir doğrusu. Buna en çok sevinen ben olurum. Memnun olurum.
PIC32 C kodlarını incelemiştim C den başka bir şeyi farkedememiştim, işlemler basitdi C++ kısımlarına iş kalmamış olabilir diye düşünmüştüm. Tamamen C diler.
C nin yetmeyip mecburen C++ kullanılmasını gerktiren bölümler gömülü için en baştan bellimidir. Bir ayrım varmıdır bu hususda?
__________________________________________________________________________________________________________________________________________________________________________
Microchip C30 ve XC16 derleyicilerinde bir yerlerde ANSI C89 diye bir standart yazıyor. Anladığım kadarıyla 1989 yılında standartlaşan bir C yazılım kodlaması kuralları üzerinden derleme sağlanıyor gibi duruyor. Bu kadar çok eski yani. Halbuki C30 derleyicisi 2000 den sonra, XC16 derleyicisi ise 2010 dan sonra çıkarıldı.
Acaba 1989 yılından sonra C yi geliştirmeyip, C++ mı geliştirilmeye başlanmış. Mesela 90'lı yıllarda C dili için ilave birşeyler hiçmi yapılıp-eklenmemiş-geliştirilmemiştir.? Yada 90'lı lı yıllarda da C geliştirilmişte, bu geliştirmelerin gömülü işlemcilere bir faydası olmayıp, bunlardamı kullanılmıyorlar?
___________________________________________________________________________________________________________________________________________________________________________
Son mesajda istediğim tarzda donanımsal bilgiler geldi. Bunlara bakacağım. Risc-V mimarisi için;
Bunlara ilave edebilecek derleyici-ide-debug+programlama cihazı-donanımsal çip gibi başka önerileri olan varmıdır?
İyi bir tercih yapmak için mümkün olduğunca geniş araştırayım istiyorum.
Sonra bir miktar yatırım yapıp, ufakdan başlayacağım İnşallah.
___________________________________________________________________________________________________________________________________________________________________________
Arm treni kaçtı için tercümem;
Ben Arm'ı hiç kullanmadım. Tanımam etmem. Bu mimariye en ufak giriş yapmadım. Yeni trendin geleceğinin kendimce Risc-V ye meyil edeceğini düşünüp, bizimkilerinde vardır bir bildiği işlemcilerini Risc-V mimarili yapıyorlar diye, buna yönelmek istedim. İleride yanlış yapmışda olsam katlanacağım artık. Birde şu anda kullandığım DSPIC30F serisi işlemciler var. Olduğu kadar bununla, sonrasını Risc-V ile giderim diye planladım. Bir halt bildiğimden değil, yalnızca planlamam böyle.
 
Benim gömülü sistemlerde C++ ile ilgili düşüncelerim farklı. Eğer mümkün ise, her zaman C++ kullanmaya çalışıyorum, çünkü daha az bug ve hata ile kod yazmayı sağlıyor, programcıya çok daha fazla ve güçlü olanaklar sağlıyor, program içinde runtime hatalarını doğru bir şekilde işlemeyi çok kolaylaştırıyor. Hele bir de yazılımın yapacağı iş kendini nesneye yönelik programlamaya elverişli ise, o zaman C++ kullanmamak büyük hata olur. Mesela şöyle bir örnek vereyim: Audio sistemi, değişik audio inputlar var (RCA, XLR, TOSLINK, COAX, NET), değişik audio outputlar var (RCA, XLR, I2S, POWER, TOSLINK, COAX). Sistemin de bunların arasında ses aktarımı yapması lazım, ses üzerinde de işlemler yapması lazım. TAM OOP lik bir iş ve C++ kullanarak çok hızlı bir şekilde sonuca gidilebilir. C ile yapılamaz mı? Yapılır, ama doğduğuna pişman eder adamı, dünyanın bug'ı çıkar.

Ne zaman C++ kullanmak mümkün olmuyor? Bellek çok az ise, işlemcinin performansı çok düşük ise C++ kullanmak biraz zora giriyor. Eğer son derece fiyata duyarlı bir proje üzerinde çalışıyorsan, C++ bir opsiyon değil. Ama bu nadir bir durum, çoğu zaman projenin gereğinden daha hızlı, daha fazla belleğe sahip işlemci seçilir, böylece sonradan "tüh, bunu hesaba katmadık, daha fazla bellek, işlemci gücü lazım, yeni hardware revizyon ile daha iyi işlemciye geçmemiz lazım" durumu ortaya çıkmıyor.

Bir de pazarlamacılar, ARGE işleri bitip proje ürün haline gelince yeni bir özellik istiyorlar, o özellik de ilave işlemci gücü istiyorsa kendini garantiye almış oluyordun. Bu çoğu projede benim başıma gelen birşey. Şu anda çalıştığım projede de, ürün bitti, adamlar şimdi IR uzaktan kumanda eklemeye karar verdiler. Gerektiğinden değil de, distribütörler öyle istediğinden. Neyseki benim kullandığım işlemcinin hem saat hızı hem bellek miktarında yeterince rezerve var ve bunu ekleyebileceğim
 
Şu an Dspic(bazı spesifik işleri, inanılmaz maliyet odaklı tasarımları gözardı ederek yazıyorum) hala kullanıyorsanız bence arm mimarili işlemcilerin çok büyük bir olay yaşanmadığı sürece 10/20yıl bandında hayatımızda olacağını düşünmemeniz abes olur. C++ konusu ise bence gelişen işlemciler ile gittikçe yaygınlaşacak, burada dilin yeteneklerinin(bu ifade biraz hatalı olabilir) buna sebep olacağını düşünüyorum. 2000den önce mcu ile uğraşan herkes assembly biliyor, kimisi zamanla bırakmış kimisi bırakmamış, assembly c ye göre bazı avantajlar sağlamasına rağmen çok az kullanılıyor. Belki ileride c++ da c yi benzer şekilde domine edebilir. Risc V konusu hala büyük ve güvenilir bulduğumuz üreticiler için yaygınlaşmadı, sanıyorum renesans harici bir örnek de bulamayız. O açıdan bence siz yaptığınız işi anlatın, benzer işi yapanlar ne kullanıyor onu görün ona göre seçim yapın.
 
Bu mikroişlemcilerin üretiminde üzerine ismini basan firmaların katkısı tam olarak nerede oluyor?
Biraz daha açık sorayım, şöyleki;
Microchip firmasından iki farklı işlemci satın alalım. Bunlardan birisi Arm mimarisinde bir çip, diğeride Mips mimarisinde bir çip olsun.
İşlemci yongasını geliştiren Arm ve Mips firmaları burası böyle, peki yongayı fiziksel olarak üreten kim.?
Microchip firması hazır gelen silikon yongaya, sadece işlemci çipin plastik enjeksiyonunu, metal ayaklarını,
bu ayaklara giden yongaya punta kaynaklı telleri falanmı yapıyor? Yoksa silikon yonga üzerine kendiside birşeyler ekliyormu?
Burda üretim safhası/mantelitesi nasıl işliyor?
Ben örneği Microchip den verdim ama Ti / ST / Renesas vesairede düşünülebilir.
 
Bu mikroişlemcilerin üretiminde üzerine ismini basan firmaların katkısı tam olarak nerede oluyor?
Biraz daha açık sorayım, şöyleki;
Microchip firmasından iki farklı işlemci satın alalım. Bunlardan birisi Arm mimarisinde bir çip, diğeride Mips mimarisinde bir çip olsun.
İşlemci yongasını geliştiren Arm ve Mips firmaları burası böyle, peki yongayı fiziksel olarak üreten kim.?
Microchip firması hazır gelen silikon yongaya, sadece işlemci çipin plastik enjeksiyonunu, metal ayaklarını,
bu ayaklara giden yongaya punta kaynaklı telleri falanmı yapıyor? Yoksa silikon yonga üzerine kendiside birşeyler ekliyormu?
Burda üretim safhası/mantelitesi nasıl işliyor?
Ben örneği Microchip den verdim ama Ti / ST / Renesas vesairede düşünülebilir.
ARM hem mimari lisansını hem de çeşitli işlemci tasarımlarını satıyor. Tasarım şirketi (Microchip vesaire) bunları satın alıyor, yanına çeşitli çevresel birimler ekliyor (I2C, SPI, PWM, ADC, USB...). Sonra bu tasarım bir üretici şirketin PDKsı ile o üreticinin belirli bir üretim prosesi için tabiri caizse "derleniyor". Üretilen waferlar paketleme fabrikasına gönderiliyor. Burada waferlar kesiliyor ve her bir çip leadframe üzerine bond wire ile bağlanıp etrafına plastik kılıf enjekte ediliyor. Çipler ya wafer üzerinde ya da paketlenmiş haldeyken otomatik makinalarla test ediliyor. Testi geçen çipler satılıyor.
 
bence kaçırdığın nokta riscV-arm işlemci kullanırken assembly ile programlamıyorsan aslında mimariye hiç temas etmiyorsun. riscV istiyorsan esp32 riscV modellerini kullanabilirsin ya da ch32v2003 kullanabilirsin ama bu iki işlemci arasında geliştirme araçları ve yapı olarak dağlar kadar fark var. bu arada esp32 kullanırken riscV ve tensilica core olan modeller var. ama SDK kullandığın için bunu bilmiyorsun bile çünkü bütün işlerini sistem apileri üzerinden yapıyorsun.

anlattığın tecrübe durumuna göre senin için aslında doğu işlemci. en kolay döküman bulacağın, yardım alacağın, türkçe kaynak bulacağın ekosistemi gelişmiş bir aile olmalı. bence riscV yerine STM32 ailesi ile ilerlersen bu kolaylıkların hepsinden faydalanırsın. stm3f103 gibi seriler de hem uygun fiyatlı hem de donanım olarak gelişmiştir. ayrıca stm32 ilesinde debug yaparken piclere göre çok daha gelişmiş özelliklere sahip olacaksın.

C dilini sağlam şekilde öğrenmek gerektiğine katılıyorum ama o işlemciden bağımsız bir konu.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,196
Mesajlar
105,640
Üyeler
2,582
Son üye
ottomanwolf

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top