Profesyoneller CM3 projelerini nasıl geliştiriyor?

Başlatan z, 20 Aralık 2012, 14:07:14

z

Zamanda geriye gidersek, CPU lu projelerimi şu şekilde geliştiriyordum.

Programı derle eproma yükle epromu karta tak kartı çalıştır. Sorun varsa epromu sök siliciye koy, yedek epromu programlayıcıya tak .....

Bu işlemi proje sonuçlanana kadar yüzlerce kere yapıyordum.

Sonraları Dual portlu RAM devreleri ile eprom simulator yapıp proje geliştirmede inanılmaz zaman kazanıyordum.

O tarihlerde kullanmak naip olmasa da bazı firmaların Piggy-Pack kılıfında proje geliştirme amaçlı pahalı işlemcileri satılıyordu.

İşlemcilerde Flash teknolojisine geçilince, epromla çalışmaya kıyasla zaman kazanıldı ancak eprom simülatörlere kıyasla programlama süresi çok yavaşlardı.

Kısıtlı imkanlarla proje yapacağım diye debelenirken profesyonel firmalar 10 bin dolar gibi paraları basıp emülatör cihazlar alıyorlardı.

Bu cihazlar kocaman boyutta oluyor ve CPU yu taklit ediyordu. Cihazdan çıkan podu uygulama kartınızdaki CPU soketine soktuğunuzda gerçek CPU ile çalışıyormuş gibi oluyordunuz. Çipi programlamakla zaman kaybı olmuyor, emülatörün ramında zaten işleyecek kodlar hemencecik oluşuyordu üstelik bugünkü jtag nimetleri de zaten bu emülatörlerin olmazsa olmazlarıydı.

Bu kadar nostaljiden sonra günümüze gelirsek;

Mevcut durumda, CM3 işlemcilerle çalışırken derleme işlemi ardından kıytrık bir JTAG cihazı yada SWD ile flashı programlıyor ardından da kodları koşturuyorum. Bu işlemi bir adım hızlandırmanın yolu kodları flash yerine rama yüklemek düşünülebilir ancak bu, yüksek RAM kapasiteli işlemcilerde mümkün. Yada projede kullanılacak işlemciden ram açısından çok daha kapasiteli işlemci kullanıp projeyi bunda geliştirmek ve nihayetinde proje oturunca kodları küçük işlemciye adapte etmek.

Şimdilerde kafama takılan konu, çok çok profesyonel firmalar CM3 işlemcili projelerini nasıl geliştiriyorlar?
Bu işleri çok çok hızlandıran emülatör gibi özel donanımlar varmı?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

danismanlik yaptigim bir kurulusta bir tane vardi, bazi muhendislerin munferit olarak kullandigini (yada tesebbus ettigini :-) ) zannediyorum.

Fakat benim nacizane dusuncemi sorarsaniz, bir RTOS ortami kurup, bunun uzerine debug ve trace icin kendi ortaminizi hazirlayip, bootstrap loader ilede programi yuklemek  orta/uzun vadede daha dogru olur. Tabii bu dedigim sistemleri hazirlarken boyle bir cihaza gerek olabilir, eger vaktiniz var ise o zamanlarda da "yaratici" bir takim cozumler ile dusuk butce ile bir takim cozumler yapilabilir. (logic analyzer / (DAC + digital scope) gibi)

butun bunlar yaklasik 2K usd harcamaya degermi? parayi verip alirim derseniz, oylede olabilir ama, genellikle yapacaginiz debug/trace/bootstrap sistemi diger sistemlerede port edilebilir, sizin rekabetci kapasitenizi/MCU bilgi ve kabiliyetiniz artirir, ayrica soguk alginligi, lumbago, fitik,  bas agrisi, dis agrisi, siyatik ve yuksek tansiyonu tedavi eder  :P )

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

tekosis

ustam sanki uzayda yaşıyorum da konuştuklarınız hava boşluğundan geçemeyip bana ulaşamıyor :) maşallah diyorum...
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

z

Aslında asıl sorun Flash programlama süresi.

Haa çokmu uzun süre bekliyoruz değil ama sıkıyor. Bir de kıytırık JTAGlarla  debug aşamasında her bir makina kodu adımlatılması ardından ilgilenilen ram alanının PC ye atılması sıkıcı oluyor.

İstiyorumki adımla tuşuna parmağım sürekli basarken ekranı takip edemeyeyim ama nerde o hız?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

tusa yaklasik 3000 usd sikismis gibi geliyor bana ::)

bir de benim nacizane gorusum, zaten gomulu bir sistem icin program yaziyorsaniz ve C gibi tasinabilir bir dilde yaziyorsaniz, temel yazilim ve fonksiyonlarinizi once simule edilen bir ortamda (PC gibi) yapip, deneyip, dogrulugunu gorunce entegre edip, gomulu ortamda sadece verification, acceptance, stress ve performans testleri vb kritik isleri yapmak daha dogru olur.

iki satir yaz, derle, yukle dene olmadi basa don, tek tabanca calisirken ve birazda kontrolsuz bir yontem olur.

takim halinde calisiyorsaniz, profesyonel takiliyorsaniz yontem biraz daha tanimli ve kontrollu olmali.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

z

Tek tabanca çalışıyor ve C falan da kulanmıyorum. Zaten benimkisi hobby.

Aklıma gelen çözümlerden birisi eski ISA tip VGA kartı kullanarak uygulama kartı yapmak. Fakat bu iş için de kullanılacak MCU nun I/O ve RAM'ı yüksek kapasiteli olanını seçmek lazım.

Bu durumda Debug işlemleri doğrudan karta bağlı VGA üzerinden yürütülebilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

speak48

staj yaptığım yerde embedded geliştirmede söyle bir yötemleri vardı.
lpc serisi cihaclarla çalışıyorlardı.
cihaz üzerinde tüm sistemi değilde
önce driverları test ediyorlardı adım adım
driverları rtosa port edip uygulama kısmını
c c++ ile visual studiodada hazırlıyorlardı.hatta çihazı gui ile görselleştiriyorlardı.
sonra tüm sistemi birleştiriyorlardı.

eistain_54

Alıntı yapılan: speak48 - 20 Aralık 2012, 17:43:32
staj yaptığım yerde embedded geliştirmede söyle bir yötemleri vardı.
lpc serisi cihaclarla çalışıyorlardı.
cihaz üzerinde tüm sistemi değilde
önce driverları test ediyorlardı adım adım
driverları rtosa port edip uygulama kısmını
c c++ ile visual studiodada hazırlıyorlardı.hatta çihazı gui ile görselleştiriyorlardı.
sonra tüm sistemi birleştiriyorlardı.

Acaba ne tür firmalar bu tip işler yapıyorlar?
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

speak48


z

Yalnız son cevaplar kodlamada yapılabilecek kolaylıklara kaydı.

Ben çipe hızlı kod yükleme ve hızlı debug etme konularını merak ediyorum.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com