Ynt: ARM Programlama

Başlatan polleme, 17 Temmuz 2013, 16:00:12

polleme

Değerli üstatlar,

Bu başlığı açmadan önce çok düşündüm, forumda ARM Programlama konusunu arattım, 700 civarı başlık çıktı. Hepsini okusam bir ay zaman ayırmam gerekir. Bana çok kısaca yol gösterebilecek biri olursa çok memnun olurum. Ben PIC, AVR, Arduino gibi ortamlarda CCS C ve MikroC ile küçük çapta projeler yaptım. Son dönemde ARM tabanlı Raspberry, Mini2440, Beaglebone, Beagleboard, STM32 Discovery gibi kartlara baktım, C ile programlama yapılmak istendiğinde karşımıza farklı bir C programlama ortamı çıkıyor. Bu noktada sorularım şunlar:

1- Yukarıda saydığım kartlarda C ile programlama yaparken kullandığımız programlama temeli ve format benzer midir? Yani birinde yazılan bir program donanımsal değişimler yapılınca diğerine kolayca uyarlanabilir mi?
2- Temel kavramlardan başlayarak konuyu anlatan bir dökümanla desteklenen ve bu konuda en iyi olan bir ARM platformu varsa hangisidir?
3- Geliştirme ortamı olarak Keil'ın adı sıkça geçiyor, yeni başlayanlara uygun mudur?

Kısaca nasıl (hangi kartla, dökümanla ve geliştirme ortamı ile) başlamamı önerirsiniz?

Zahmete soktuğum arkadaşlara şimdiden teşekkür ederim.

mesaj birleştirme:: 17 Temmuz 2013, 16:03:19

Bu arada forumdaki bazı konu başlıklarını okudum, okumadım değil ama ileri düzeyde konu anlatımları ve uygulamalar geçince birşey anlamak mümkün olmuyor, bazı başlıklarda bu konudan bahsedilse bile o kadar farklı şeylerden bahsediliyor ki yeni başlayan birinin kafasının çorba olmaması imkansız.  :)

O nedenle yeni başlık açmamın mazur görülmesini tekrar rica ediyorum.

mistek

ARM programlama konusunda ilk başvurulacak kaynak bence Barış Samancının hazırladığı dökümandır.
http://www.barissamanci.net/AltKategori/9/lpc2000-programlama-klavuzu/

Sonrasında forumda Z hocanın anlatımıda çok iyi bir kaynak zaten ufak bir giriş yaptığınızda gerisi daha anlaşılır hale geliyor. Kütüphane kullanırsanız muhtemelen işler dahada kolaylaşacaktır.

C kullanırsanız ve donanımsal değişiklikleri yaparsanız kodların neredeyse tamamı çalışacaktır. STM32f4 de çalıştırdığım programı LPC1769 da da çalıştırıyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

polleme

Barış Samancı'nın dökümanından gidersem hangi kartı kullanmam uygun olur? LPC2000 almak zorunda mıyım? Elimde olan kartları saymam gerekirse

Beaglebone
mbed
STM32 Discovery
MSP430
Mini2440
Raspberry

diot

Ben arm ye stm32f407 discovery kit ile başladım , derleme ortamı olarak keil kullanabilirsin. c tabanın varsa zaten yabancılık çekmeyeceğine eminim.  Ben hazır yazılmış projeleri inceleyerek başlamıştım hala incelemelerim devam ediyor. Gözünde büyütmene gerek yok. İyi çalışmalar.

polleme

Alıntı yapılan: diot - 17 Temmuz 2013, 17:17:11
Ben arm ye stm32f407 discovery kit ile başladım , derleme ortamı olarak keil kullanabilirsin. c tabanın varsa zaten yabancılık çekmeyeceğine eminim.  Ben hazır yazılmış projeleri inceleyerek başlamıştım hala incelemelerim devam ediyor. Gözünde büyütmene gerek yok. İyi çalışmalar.


Peki STM32 Discovery ve Keil ile gidersem ARM'e yeni başlayan biri için hangi dökümanı önerirsiniz? Malum un, yağ ve şeker olmadan helva olmuyor.  :)


Icarus

Ben sadece birkaç gün önce ARM'a başlamış biri olarak şunu söyleyeyim
ARM System Developer's Guide
The Definitive Guide to the ARM

Kitapları güzel
Çok basit dahi olsa Board olarakta kendi board'umu kendim dizayn ettim.
Neden ?
Pek çok hazır board'da, onların geliştirme ortamlarında önemli kodlar hazır olarak üretiliyor ve encapsulation'la sizden saklanıyor.
Eğer konuyu biliyorsanız rahatlatıcı birşey ama benim gibi yeni öğreniyorsanız işinizi ve debug etmenizi çoooooooooooooook zorlaştırıyor.

ARM ile ilgili birkaç not düşeyim.
x86'da driver vb.. yazdıysanız ARM %99 aynısı sadece harvard mimarisi.

mistek

Çekirdek olarak hepsi ARM oldukları için çok yabancılık çekmeyeceksiniz her platform birbirine benzer. Başlangıç için mbed ve discovery bu iş için uygundur örnekleri çok fazla. Kullandığınız mikroişlemcinin datasheet ve uygulama notları birçok noktada yeterli gelecektir. İşin mantığını anladıktan sonra gerisi kolay.

He standart kütüphane kullanımını anlatacak kaynak varsa bende öğrenmek isterim :)
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mir_as82

CCS firmasının yaptığı IDE ortamı da Arm işlemciler ile çalışılabiliyor mu eğer çalışılıyorsa hangi versiyon da çalışıyor acaba?

sadogan

Alıntı yapılan: mir_as82 - 17 Temmuz 2013, 23:21:51
CCS firmasının yaptığı IDE ortamı da Arm işlemciler ile çalışılabiliyor mu eğer çalışılıyorsa hangi versiyon da çalışıyor acaba?
CCS yanlızca pic32 hariç diğer pic ler için 32bit pic ler dahi desteklemiyor.

z

Forumda STM32F4 kullananlarin, anlatimlarin orneklerin sayisi da cogaldi.  Fiyati da uygun bir kart.

Derleyicisi de sorunlu degil. Baslangic icin cok fazla dusunmene gerek yok.

ARM felsefesini kavrayinca diledigin cipi sec ve kendi kartini tasarla kodlarini yaz.

Picproje' STM32F4 konusunda size yeter.

(STM32F4 felsefesini anladim ve bu kitle ve ciple isim bitti hatta bu cipi unuttum. Bu yuzden de ozellikle de islerimin yogunlugundan bu ciple ve kitle ilgili sorulara katilamiyorum. Ozel mesaj yoluyla gelen STM32F4 sorularina hic cevap yazamiyorum)

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

mir_as82

Hocam beaglebone black aşağıda yazılan ürünün gelişmiş modeli midir? Ben şunu öğrenmek istiyorum, STM32F4 veya beaglebone black, arm geliştirme kiti ve ayrıca yazılan programı arm işlemciye jtag aracılığı ile yükleme kartı mıdır? yani hem deney seti hem arm işlemciye program yazma aracı.

polleme

Bu kısa ve öz yazışmalarla yolumu belirledim. Cevap veren arkadaşlara teşekkür ederim. Bu durumda elimde olan STM32F4 Discovery ile başlıyorum, Keil kullanacağım. Forumlardaki (Türkçe de var) ve picproje'deki basit proje ve uygulamalarla başlamaya karar verdim.


muhittin_kaplan

Önce Z nin registerleri kullanarak lowlevel programlamasını hallet, bu sana dataseheet incelemesini nerede neler oluyor u öğretiyor.
sonrasında kütüphanlerle çalışmaya geç.

polleme

Alıntı yapılan: muhittin_kaplan - 18 Temmuz 2013, 11:41:55
Önce Z nin registerleri kullanarak lowlevel programlamasını hallet,

Bunu nereden bulurum. Bu bilgiler datasheet içinde var sanırım, doğru mudur?

Low level programlama için de Assembler önermiyorsunuzdur umarım.  :)