CMSIS mi FWLIB mi?

Başlatan erolca, 07 Mayıs 2011, 11:19:37

erolca

Merhabalar,
Bu iki kütüphane arasında kalmış durumdayım hangisini tercih etmeliyim? CMSIS mi  FWLIB mi?

yardımlarınız için şimdiden teşekkür ederim..
eroool

X-Fi

CMSIS çok temel bir kütüpane sürekli güncelleniyor ancak FWLIB keil alt yapısında bir kütüpanedir güncel versiyonları yok yinede ikisi arasında tercih yapacaksan CMSIS STLIB önerebilirim sonuçta library olmayınca kod yazması dert oluyor kütüpanelerin kolaylıklarından faydalanmak güzel yeni başlıyorsan FWLIB ile başkayabilirsin kütüpane yapısına alışırsın sonra lisanslı bir kütüpane üzerine çalışmalarını sürdürürsün. codesource firmasının G++ da başarılı bir kütüpane buda tercih edilebilir ileri  seviyede.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

memo333

Bence CMSIS. Özellikle sıfırdan başlıyorsanız zor biraz ama CMSIS.

Zaten indirdiğiniz CMSIS kütüphanesinin içinde template bir proje var. Gerekli ayarlamaları yapın (örneğin stm32eval.h dosyalarını kaldırın) ve denemelerinize başlayın.

Gömülü Linux Notları --> http://linuxedu.xyz/

erolca

cevaplarınız için çok teşekkür ederim.
eroool

z

#4
Alıntı YapSiz ARM MCU için ARM dan daha iyi kod yazabileceğinizi düşünüyormusunuz?

Kesinlikle.

Eger yazacaklarimi okursaniz hak verirsiniz.

CM3 Cipin bazi registerlerinin ne anlama geldigini anlamadigim donemde bazi kodlari trace ederek neler yapildigini incelemek zorunda kaldim. Sinyal isleme gibi hiz isteyen projelerde bu kodlar ise yaramaz.

DOS zamaninin INT 21 rutinlerini hatirlarsiniz.

Amaciniz  basit bir int 21 fonksiyonunu cagirmaktir.
Bazi registerlere parametrelerinizi yuklersiniz.  Ardindan INT 21

INT 21 baslar. AH degeri ne?
O zaman suraya git.

Peki AL ne?
O zaman suraya git.

Surasi burasi:
BIOS ramda 1000 adresini oku ve BX e yaz.
1002 adresini CX e yaz.
AH u push et
AH icine 10 koy
INT 10

INT 10 Baslar
AH degeri ne?
Bu
O zaman suraya git.

Surasu burasi:
Bios ramda 1200 adresini DX e yukle.
BX*
INT 10 da rutinler baslar.

BX/8 * 320+ CX bla bla degerini hesapla DX portundan cik.
pop AH
iret
iret

En basta int 21 cagirdiginiz yere donersiniz.

Eger amaciniz hiz ise opmusum tasinir kodu derseniz
daha en bastan BX/8 * 320+ CX bla bla degerini hesapla DX portundan cik islemini yapiverirsiniz.

Inceledigim ARM fonksiyonlarinda da kodlar aynen boyle dolambacli yazilmis.

Hiz istenmiyorsa, tasinabilir, guvenilir kodlama icin bu library cok guzel. Neyin ne oldugunu bile bilmeye gerek kalmadan libray fonksiyonlarini, parametrelerini dokumandan ogrenip cagirmak cok basit.

Ama delikanli adami bozar bu kodlar.

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

z

#5
Bu arada CMSIS rutinlerini ARM firmasi değil de ARM'in firmasinin kurallarina uymak kaydiyla cipi ureten firma yaziyor diye biliyorum. Updateleri de Keil'den değil cip ureticisinin sayfasindan yapmak gerekiyor.

Yanlis mi biliyorum?

http://focus.ti.com/mcu/docs/mculuminarymodules.tsp?sectionId=625&tabId=2499&familyId=1755

http://focus.ti.com/docs/toolsw/folders/print/cmsis_lm3s.html
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

X-Fi

Bunalmış hocam haklı olduğunuz yerler var ama bence artık kütüpaneler okadarda çaresiz değiller çok iyi kod opsiyonları tanıyabiliyorlar bunları uğraşıp çözmeye illaki gerek varmı?

Bir örnek verecek olursam bir SD kart okuma programı yaptık 12mb/sn ile okuma yapabiyoruz diyelim, bunu library olmadan yapsak ne değişecek? yine SPI donanımını kullanacağız. Hızı donanım belirleyecek ben bu aşamada az kod yazmanın ve güvenilir bi kütüpanenin işi hızlandıracağından yanayım. Öğrenmek istiyorsanız veya değişik bir yöntem kullanmak istiyorsanız kütüpaneler kodlarıda kısıtlamıyor registerları kendiniz de set edebiliyorsunuz.

Kütüpaneler artık işi kolaylaştırıyor tembelleştiriyor belkide bizi. CCS mi? hitech m? konusu gibi. Yıllarca hitech kullandım kod içinde kendi bildiğimi okumayı seviyorum yalnız program çevreleri arttıkça onu ordan al onu oraya koy işleri başa dert açıyor. O zamanda az kod yaz çok iş yapsın, yapmaktan kurtulduğun işi kütüpane üreticisine para olarak öde çözümüde mantıksız gelmiyor hocam.   
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

z

#7
Cok kisa surede teslim edilmesi gereken projeler icin haklisin. SD, GLCD, USB rutinleri kod hamalligi bunlari sen yazsan ne olur yazmasan ne olur.

Fakat uygulama alanim hiz istiyorsa fazla agirliklardan kurtulmam lazim.

Adana'da genclerin duzenledigi illegal otomobil yarislarinda;

Otomobillerde sofor koltugu haric tum koltuklar sokulur. Agirliga neden olan tum gereksiz aksam atilir. Arabalar teknik olarak da modifiye edilir bunun sonunda Tofas'in surucusu  Golfcunun parasini cebe atar.

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

z

Alıntı YapBir örnek verecek olursam bir SD kart okuma programı yaptık 12mb/sn ile okuma yapabiyoruz diyelim, bunu library olmadan yapsak ne değişecek?

Benim kizim yarim saatte 100000 tane SD kart okur, yemegi yapar, camasir yikar derken;

Gene 12mb/sn hizla okuma yapabileceksin. Fakat islemciyi gereksiz yere yoran kodlardan kurtulma sansin olacak.

Benim kizim yarim saatte 100000 tane SD kart okur, yemegi yapar, camasir yikar, utusunu utuler, camlari siler, maillerini kontrol eder diyebilirsin.

Fakat itiraf ediyorum. Boyle amaclariniz yoksa libraryden sasilmaz.

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

CoşkuN

Arkadaşlar birşeyi tam anlayamadım:
CMSIS ve FWLIB apayrı şeyler değil mi? Yani CMSIS ile ARM firması farklı firmaların ürettiği ARM tabanlı işlemciler için ortak bir ara katman oluşturmayı amaçlıyor. FWLIB ise ST firmasının ( bildiğim kadarıyla ST'nin böyle bir kütüphanesi var) kendi işlemcilerine ait çevrebirim sürücüleri.
Bu anlamda aslında birbirini tamamlayan şeyler değiller mi?

memo333

Alıntı yapılan: CoşkuN - 09 Mayıs 2011, 10:44:11
Arkadaşlar birşeyi tam anlayamadım:
CMSIS ve FWLIB apayrı şeyler değil mi? Yani CMSIS ile ARM firması farklı firmaların ürettiği ARM tabanlı işlemciler için ortak bir ara katman oluşturmayı amaçlıyor. FWLIB ise ST firmasının ( bildiğim kadarıyla ST'nin böyle bir kütüphanesi var) kendi işlemcilerine ait çevrebirim sürücüleri.
Bu anlamda aslında birbirini tamamlayan şeyler değiller mi?

Haklısınız.

FWLIB sadece ST firmasının ürettiği donanımlar için hazır liblerdi. Fakat ARM'ın geliştirdiği CMSIS standartına uygun olarak yeniden düzenlendiler ve isimleri Standard Peripheral Library oldu.

Ama ağız alışkanlığı işte FWLIB eski , CMSIS yeni... Doğrusu FWLIB eski, CMSIS + Standard Peripheral Library yenisi.
Gömülü Linux Notları --> http://linuxedu.xyz/