Sosyal Medya  

FacebookTwitterDiggLinkedinRSS Feed
   

   
   

Adım Adım ARM Programlama yazı serimin ilkinde; ARM nedir, ARM programlamak için nelere ihtiyacımız var ve hangi deneme kartlarını kullanacağız bunlardan bahsedeceğim. Ayrıca yazılarım boyunca kullanacağımız program ve dosyaları yeri geldiğince sizlerle paylaşacağım. Bu yazı serisinin amacı; ARM programlamak isteyen ama karmaşık yapısından dolayı, programlamayı nereden başlayacağını bilmeyen arkadaşlara yol göstermek. İnternette, ARM programlamak üzerine çok fazla Türkçe kaynak bulunmamakta. Ayrıca ARM programlamayı sıfırdan belli bir düzeye kadar düzenli bir şekilde anlatan ders şeklinde yazılar bulmak da oldukça zor. Umarım yazılarım, bu eksikliği bir nebze olsun azaltır.


ARM nedir?

ARM; Acorn RISC Machine kelimelerinin kısaltılmasıyla adlandırılmış, 32-bit RISC(Reduced instruction set computing) işlemci mimarisidir.Yüksek hızlara çıkabilmesinden, 32-bit mimari yapısından, çok az enerji tükettiğinden ve zengin çevresel donanım imkanlarından dolayı ARM çekirdekli bir çok işlemci, bir çok uygulamada tercih edilmektedir. Cep telefonları, bilgisalarlar, tabletler gibi bir çok elektronik cihazda ARM mimarisine sahip işlemciler kullanılmaktadır.

ARM tek başına bir işlemci özelliği taşımaz. Bir çok firma, ARM firmasından bu işlemci mimarisini satın alıp, mimarinin özelliklerini kendi kültürlerine göre şekillendirerek, kendi isimleriyle piyasaya sunmakta. ST(STMicroelectronics), TI(Texas Instruments), Philips, ATMEL gibi daha bir çok firma işlemcilerini, ARM mimarisi kullanarak üretirler. Ancak mimari içindeki özellikleri her firma kendine göre şekillendirdiği için, her markanın kendine özgü ARM kütüphaneleri bulunmakta. Bu yüzden; her ne kadar ARM programlamak temelde C diline dayansa da, çiplerin değişen kütüphaneleri ve özelliklerinden dolayı, programlama da her firmaya göre değişecektir. Örneğin; ST firmasının ürettiği ARM işlemcilerini programlamayı öğrendiğinizde, aynı kütüphane ve özellikleri kullanarak Philips'in ürettiği ARM işlemcilerini programlayamazsınız. Philips'e geçmek için, üretici firmanın sağladığı kütüphaneleri indirip, kütüphanelerin kullanış şekillerini tekrardan öğrenmeniz gerekmekte.

ARM mimarisinin tamamı 6 kategoride gruplandırılmıştır: Cortex-A50 Serisi, Cortex-A Serisi, Cortex-R Serisi, Cortex-M Serisi, Klasik ARM İşlemciler, SecurCore İşlemciler.

Cortex-A50 Serisi: Bu kategorideki işlemciler 32-bit olmasına rağmen 64-bit'lik veri işleyebilme kabiliyetine sahipler. ARMv7 grubundaki işlemcilere oranla daha performanslı çalışan Cortex-50 Serisi, yeni eklenen güç tasarrufu özelliğiyle de dikkat çekmekte.

Cortex-A Serisi: Yüksek hız gerektiren uygulamalar için geliştirilmiş bir seridir. Görüntü işleme, yüksek özelliklere sahip işletim sistemleri kullanımı, zorluk derecesi yüksek ve karmaşık hesaplamaları kapsayan uygulamalar gibi performans gerektiren tüm alanlarda bu işlemciler tercih edilir. Telefonlarda, tabletlerde, otomativ sektöründe, bilgisayarlarda, netbook'larda ve bir çok yüksek teknolojiye sahip cihazlarda Cortex-A serisi kullanılır.

Cortex-R Serisi: Gerçek zamanlı çalışan işlemcilerdir. Daha çok teknik cihazlarda kullanılırlar. Yazıcılarda, modemlerde, kameralarda, harddisk sürücülerinde, evde kullanılan elektronik cihazların bir çoğunda(mutfak robotları, çamaşır makinaları, buzdolapları, kilimalar vs.), otomativ sektöründe yer alan elektronik cihazların bazılarında, hastanelerdeki tıbbi cihazlarda ve endüstride Cortex-R Serisi işlemciler tercih edilmektedir.

Cortex-M Serisi: Elektronik sanayide hemen hemen bir çok alanda Cortex-M serisi tercih edilmekte. Düşük güç tüketimi, kolay kullanımı ve yüksek performansı ile piyasada bulunan 8 ve 16 bitlik işlemcilere karşı çıkartılmış bir seridir. Düşük maliyetli olmasından dolayı çok fazla tercih edilmekte.

Klasik ARM İşlemciler: İçerisinde ARMv7, ARM9 ve ARM11 ailelerini barındıran bu seri ARM firmasını 15 yııldır hizmet etmekte. Mimari yapısı günümüz teknolojilerine göre bbiraz eski kaldığı için, ARM firması tarafından bu işlemciler yerine Cortex-M/R serileri önerilmektedir.

SecurCore İşlemciler: Güvenliğin ön planda olduğu alanlarda bu işlemci tercih edilmekte. Günümüzde kullandığımız yüksek güvenliğe sahip tüm akıllı kartlarda(smart cards) SecurCore işlemciler tercih edilir.

ARM hakkında anlatılacak daha bir sürü bilgi olmasına karşın, yazımın amacından uzaklaşmamak adına bu konuyu burada noktalıyorum. Daha detaylı bilgi için www.arm.com sitesine ziyaret edebilirsiniz.

Programlama için Gerekli Ekipmanlar

ARM'ın bir mimari(çekirdek) olduğunu yukarıda belirtmiştim. ARM'ı programlamak demek, ARM mimarisini kullanılarak üretilen işlemcileri programlamak demektir. Piyasada birçok firma ARM mimarisi kullanarak kendi işlemcilerini üretmekte. Ben yazı serilerimin hepsinde ST firmasının işlemcilerini kullanacağım. ARM programlamayı öğrenmek istiyorsanız bir deneme kartı edinmeniz şiddetle tavsiye ederim. Ben yazılarım boyunca ST firmasının üretmiş olduğu iki farklı deneme kartını kullanacağım: STM32F10C-Eval ve STM32F4-Discovery. STM32F10C-Eval deneme kartı üzerinde STM32F107VCT Cortex-M3 serisi bir mikrodenetleyici bulundurmakta. Deneme kartı, bu işlemci ile yapılabilecek hemen hemen her donanıma sahip olduğu için gayet kullanışlı ve öğreticidir. STM32F4-Discovery deneme kartının üzerinde de STM32F407VGT6 mikrodenetleyici bulundurmakta. Diğer deneme kartına göre daha az özellikte olmasına karşın tercih edilmesinin en büyük sebebi fiyatıdır. ARM programlamayı öğrenmek için en azından bu deneme kartını almanızı öneririm. Deneme kartlarıyla ilgili gerekli kütüphaneleri yazımın sonunda bulabilirsiniz.

Yazılım geliştirebilmek için bir derleyiciye ihtiyacımız var. Keil ve IAR piyasada en çok kullanılan iki derleyicidir. Ben programlarımı zaman zaman Keil'da zaman zaman da IAR'da geliştirerek, her iki programı da sizlere göstermeyi hedeflemekteyim. Her iki derleyicide 32K'lık kod sınırı bulunmakta. 32K'lık kod uzunluğu başlangıç seviyesindeki projeler için çok çok büyük bir alan olduğundan dolayı, her iki derleyiciyi de ücretsiz olarak kullanabiliriz. Derleyicilerin indirme linkleri aşağıda verilmiştir.

İndirilmesi Gereken Kütüphaneler ve Programlar

STM32F10C-Eval deneme kartı kütüphanesini buradan indirebilirsiniz.

STM32F4-Discovery deneme kartı kütüphanesini buradan indirebilirsiniz.

Keil MDK-ARM programını buradan indirebilirsiniz.

IAR programını buradan indirebilirsiniz.

 

Adım Adım ARM Programlama-1 isimli yazımın sonuna geldim. Adım Adım ARM Programlama 2-GPIO isimli yazımda programlamaya ilk adımı atacağız.

Şimdilik sağlıcakla kalın...

Yorumlar   

+3 # Serhat Evcim 09-04-2013 07:17
Emeğine sağlık kardeşim , çok güzel bir yazı olmuş . Devamını bekliyoruz , çalışmaların devamını dilerim :-)
Cevap | Alıntıyla Cevapla | Alıntı
+4 # MehmetAliAYDIN 12-05-2013 23:57
M3 serisi işlemci yerine piyasa şartlarına dönük çalışalım.örneğ in cep telefonlarında kullanılan cortex-A serisine yönelik basit uygulamalar yazalım.Led yakıp söndürüceksem,p ic16F628'i de kullanabilirim.
Cevap | Alıntıyla Cevapla | Alıntı
+3 # Super User 13-05-2013 09:36
PIC serisi 8bit ,MSP ve DsPIC serisi 16bit, ARM serisi 32bit işlem gücüne sahip. Elbette ARM, MSP, DsPIC ile yaptığın birçok basit düzey uygulamayı PIC serisiyle de yapabilirsin ama uygulamaların içeriği ve zorluk derecesi arttıkça, daha güçlü işlemcilere ihtiyaç duyarsın. Ülkemizdeki bir çok elektronik firmasına 8bit ve 16bit işlemciler yetmekte. 32bit ARM işlemcilerle uğraşan firmaların çoğu ise hala M1 serisini kullanmakta. Çünkü daha hızlısını gerek duymuyorlar. Bu yüzden cortex-M serisine yönelik makaleler yazmayı hedefliyorum. Yalnız, eğer cortex-M serisi ile ARM programlamayı öğrenirseniz, cortex-A serisini de hemen hemen öğrenmiş olursunuz. Aralarında kütüphaneler haricinde çok fark yok. Cortex-A serisine yönelik makalelerimi, ARM içine işletim sistemi gömerek anlatacağım. Ama bunun için henüz erken
Cevap | Alıntıyla Cevapla | Alıntı
+1 # MehmetAliAYDIN 30-10-2013 02:08
uzun süredir Sarp Ertürk'ün kitaplarını okumakla meşgulüm,DSP üzerine yerli kaynak olmadığı için 2 çeviri kitabı okudum.Anlatmak istediğim şu:tablet PC'lerde ve cep telefonlarında AEM tabanlı mikroişlemci kullanılıyor,be n bu cihazlardaki mikroişlemciler i kullanabilecek düzeyde olmalıyım ki,şu günlerde popüler olan yüz tanıma,ses tanıma uygulamalarını yazabileyim.Yaz amam ama,örnek veriyorum
Cevap | Alıntıyla Cevapla | Alıntı
+1 # MehmetAliAYDIN 30-10-2013 02:10
Düzeltme:AEM değil ARM olacaktı,ayrıca yazılarınız için çok sağolun,Allah razı olsun.
Cevap | Alıntıyla Cevapla | Alıntı
+1 # sedat 25-02-2014 10:45
http://www.google.com.tr/url?sa=t&rct=j&q=&esrc=s&source=video&cd=4&cad=rja&ved=0CFoQtwIwAw&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DoPFvFDb-0OY&ei=nXEMU4urMMe07QbZ-oHwAg&usg=AFQjCNHZlSjTEDHitalHxsWo8zewHXcRqA
muhammed kardeşim .eklediğim video ile ilgili bir soru soracağım. bu sensörü boyu 170 metre eni 30 metre olan bir deniz üstündeki dubada deniz üzerindeki hareketlerini izleyebi,lecek şekilde kullanabilirmiy iz.
Cevap | Alıntıyla Cevapla | Alıntı
+3 # Super User 26-02-2014 15:02
Sedat Bey Merhaba,
F4 Discovery üzerinde bulunan akselerometre ile hassas ölçümler yapmanız mümkün.
İyi çalışmnalar,
Cevap | Alıntıyla Cevapla | Alıntı
-1 # MACİT 29-06-2014 22:47
Hocam ben lpc1768 aldım ama kütüphanesi ve örnek çalışmalar hakkında yardımcı olabilirmisiniz
Cevap | Alıntıyla Cevapla | Alıntı
+2 # ali 21-05-2015 16:09
IAR programının ve KEIL MDK ARM programının işlevi nedir biraz bahsedebilir misiniz
Cevap | Alıntıyla Cevapla | Alıntı

Yorum ekle


Güvenlik kodu
Yenile

   
   
© muhammetefe.com