Bugün dünyada üretilen mikroişlemcilerin %2 gibi küçük bir bölümü kişisel bilgisayarlarda kullanılıyor. Geri kalan %98’lik kısım hayatımızdaki elektronik cihazların içerisinde. Şu günlerde elektronik alanındaki gelişmelere aşina olan birinin ARM ismini duymamış olmasına imkan yok. Başta cep telefonları olmak üzere hemen hemen bütün mobil cihazlarda ARM mimarisine sahip işlemciler bulunuyor.
ARM Firması:
Öncelikle şunu belirtmekte fayda var: Piyasadaki birçok ürün için ARM işlemcili denilse de aslında doğru ifade “ARM tabanlı işlemci” dir. Çünkü aslında kendi başına ARM işlemci diye bir ürün bulunmuyor. ARM firması çeşitli mimariler tasarlıyor ve bu tasarımlarını işlemci üreticisi firmalara “lisanslıyor.”. ARM firması işlemcilerin fiziki olarak üretimi yapmıyor.
ARM Ailesi:
ARM mimarisi ailesini tanıyalım. ARM’ın kendi web sitesindeki tabloya bakacak olursak:

ARM mimarisi ailesi (Kaynak: ARM Inc) http://arm.com/products/processors/index.php
ARM mimarisinde 3 temel grup bulunmaktadır:
- Klasik ARM işlemciler: ARM7, ARM9, ARM11
- Gömülü sistemlere yönelik ARM işlemciler: Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4
- Uygulama seviyesindeki ARM işlemciler: Cortex-A5, Cortex-A8, Cortex-A9, Cortex-A15
1- Klasik ARM işlemciler:
Bu gruptaki Cortex serisi öncesi grubu oluşturuyor. ARM7 serisi daha çok Motor kontrolü, sinyal işleme gibi mikrodenetleyici uygulamalarında kullanılan mikrodenetleyicilerin çekirdeğini oluştururken, ARM9 ve ARM11 serileri uygulama seviyesinde ve daha çok mobil cihazlarda kullanılıyor. Klasik ARM çekirdekleri görece daha eski ARM ürünlerinden ve kullanımları giderek azalıyor. Bunların yerine Cortex M, R ve A serisi ARM çekirdeklerinin kullanımı tavsiye ediliyor.
2 – ARM Cortex Embedded İşlemciler:
Cortex M ve R serileri: Bu seri, deterministik bir şekilde çalışması gereken gerçek zamanlı ve düşük güç tüketimi gerektiren uygulamalarda kullanılıyor. NXP Semiconductors, STMicroelectronics, Texas Instruments, ve Toshiba gibi işlemci üreticileri bu çekirdeğe sahip mikrodenetleyici ürünleri sunuyorlar.
3 – ARM Cortex Uygulama İşlemcileri:
Cortex –A Serisi uygulama işlemcileri
Son dönemde hayatımızda oldukça büyük yer tutan akıllı telefonlar, tablet bilgisayarlar gibi son kullanıcı ürünlerinin birçoğunda bu serideki çekirdeklere sahip işlemciler bulunuyor. Örnek vermek gerekirse iPhone, iPad, Samgung Galaxy Tablet, RIM Playbook gibi ürünlerde Cortex-A serisi ARM tabanlı mikroişlemciler bulunuyor. Bu seri daha çok yüksek performans gerektiren son kullanıcı uygulamalarının üzerinde çalışacağı platformlarda kullanılıyor.
ARM ile çalışmak
Şimdi gelelim ARM ile haşır neşir olmak isteyenler neler yapabilir sorusuna?
Öncelikle ARM ile uğraşmak diye birşey yok. Yine yazımın başında söylediğim gibi ARM işlemci diye birşey yok, ARM çekirdekli mikroişlemciler/mikrodenetleyiciler var.
ARM tabanlı mikroişlemci / mikrodenetleyici ayrımına bakacak olursak:
Mikroişlemciler genellikle sadece işlem ünitesi ve temel birimlerden oluşurlar, harici olarak bellek ve diğer giriş/çıkış birimlerine ihtiyaç duyarlar. Mikroişlemcileri daha çok “uygulama” yazılımlarının çalıştığı sistemlerde görüyoruz.
Mikrodenetleyiciler ise kendi içerisinde giriş-çıkış birimleri, çeşitli donanım birimleri (SPI, I2C, PWM), RAM ve kalıcı hafıza (genellikle NOR veya NAND flash) bulunan “komple” sistemlerdir. Mikrodenetleyiciler daha çok elektronik tasarım alanında kullanılıyorlar. Yani çevremizdeki cihazlardan sadece cep telefonlarımız, tablet bilgisayarlarımız değil çamaşır makinalarımızda, otomobillerimize, fotoğraf makinalarımızdan yazıcılarımıza kadar birçok ürünün içinde ARM tabanlı işlemciler bulunuyor.
O zaman yapmak istediklerimize göre gruplama yapmak istersek:
Eğer elektronik tasarım alanında çalışacaksanız, işin donanım seviyesine yakınsanız, muhtemelen de daha önceden 8/16 bit mikrodenetleyiciler çalıştıysanız ARM tabanlı mikrodenetleyici ailelerine yönelmelisiniz. Bunlara örnek verecek olursak NXP Firmasının LPC1000, 2000 serileri, ST firmasının STM32 serisi. ATMEL firmasının AT90SAM serisi…
ST firmasının STM32F Discovery ve STMF4 Discovery kartlarıyla ilgili yazılarımı da okuyabilirsiniz. Ayrıca STM32F100 Discovery kartı ile ilgili başlangıç yazımı da buradan okuyabilirsiniz.
Cortex – M3 serisi ile ilgili yazımı buradan okuyabilirsiniz.
Eğer uygulama yazılımlarıyla uğraşacaksanız aslında işlemcinin ARM olması sizi pek ilgilendirmiyor. Doğrudan donanım seviyesinde yazılımlar geliştirmeyecekseniz muhtemelen üzerinde yazılım geliştirmek istediğiniz platformun size sağladığı araçlar ve kütüphaneleri kullanacaksınız. Örneğin akıllı telefon yazılımları geliştirmek için bugün çok popüler olan Android, iOS ve Windows Mobile gibi platformları kullanabilirsiniz. Burada odaklanmanız gereken şey bu platformlar olacaktır.
Eğer daha özel uygulamalar geliştirmeyi düşünüyorsanız BeagleBoard, Mini2440, Pandaboard, Beaglebone gibi geliştirme kartlarını kullanabilirsiniz. Bu kartlar üzerinde Win CE, Embedded Linux ve Android kurararak üzerine kendi uygulamalarınızı geliştirebilirsiniz.
Kaynaklar:
1 – ARM Inc. http://www.arm.com
2- Wikipedia. http://en.wikipedia.org/wiki/ARM_architecture
µişlemcilerde, #include dosyası RAM’e yüklenerek,donanımlara dolaylı olarak erişilip donanımın registerine yazılım yükleniyor.Bu tezim doğru mu?µcip16F628 yapısını inceleyerek bu sonuca ulaştım,bütün µişlemcilerde DSP dahil,flash-rom’da kayıtlı olan yazılımı donanıma yüklemek için
RAM’deki özel amaçlı registerler mi kullanılıyor.
Yazılımlar derlendikten sonra program hafızasına yükleniyor. Bu hafıza genellikle bir flash bellek oluyor. İşlemcilerin fonksiyonlarına da registerlar üzerinden erişiliyor
Arm işlemci mimarisinde yeniyim , daha önce pic ile ilgilendim , arduino ile ilgili ilk kitabınız , arduino uno ve stm21f429 discovery geliştirme kitlerim de var , KEIL derleyicisini kullanıyorum ama led yak söndür , butona basılıyken yak söndür gibi uygulamaların dışına çıkamadım . Servo kullanmak ve robot kol yapmak istiyorum önümde zaman var ama bu yolda hangi kaynaklarla nasıl yürümem gerektiğini kestiremiyorum , yardımcı olursanız sevinirim , önerilerinizi bekliyorum Teşekkürler .
Merhaba,
Servo kullanmak için timer modüllerini kullanmanız gerekecektir. Timer’larla ilgili örneklerden faydalanabilirsiniz. Picproje.org forumunda bu konuda birçok örnek paylaşıldı. Şurda da bir örnek uygulama var: http://muhittinkaplan.com/2013/08/rc-servo/
Çok güzel olmuş teşekkür ederim. Daha önce 8bit çalışmıştım. nedir bu ARM ile STM gibileri arasındaki ilişki diye merak ettim kaynaklar hep işin ortasından başlayıp anlatmış.Burada iki dakkada herşey oturdu.
Hocam merhabalar stm32f103 bir geliştirme kartım var bu kart ile hid uygulaması yaparak usb den haberleşmek istiyorum nasıl yapabilirim?
ST’nin Cube MX yazılımını incelemeni öneririm. Onda başlanıç için belirli ayarları içeren kodlar otomatik üretiliyor Bir de ST’nin örnek kodları arasında HID kodları olması lazım, onlara da bakabilirsin
C ile arm programlama ile kitap yazmayı düşünüyor musunuz ?
Evet düşünüyorum, hatta başladım da sayılır ama ne zamana biteceği konusunda kesin birşey söyleyemiyorum.
merhaba hocam…yazınız için emeğinize sağlık teşekkürler :)) bir sorum olacak….PIC yılların mikrodenetleyicisi ama neden ARM tabanlı mikrodenetleyicilerin/mikroişlemcilerin tercih edildiğini bir türlü anlamış değilim.Yani PIC de de 32 bit AVR de de 32 bit MIPS de de 32 bit mümkün …faklı kılan ne , birileri ARM yi çok tercih ediyoır diye herkes de tesadufen ona mı yöneldi de boyle oldu yoksa ARM nin ekstra güzel yönleri mi var…
Merhaba,
ARM’ın yükselişi daha çok mobil cihazlarla birlikte oldu diyebiliriz. ARM işlemcilerin temel özelliği RISC mimaride olması ve düşük güç tüketimleri. Düşük güç tüketimi de oldukça önemli bir konu haline geldi. Başlangıçta cep telefonlarında kullanılan işlemciler ARM tabanlı iken sonrasında birçok firma ARM çekirdeği (M Serisi) ile mikrodenetleyiciler de üretmeye başladı. Sonrasında hemen her yarı iletken firması ARM tabanlı MCU’lar çıkarmaya başladı ve bugünlere geldik. Diğer örneklerin hepsi tek bir firmaya bağlı mimariler, ARM’da ise farklı firmaların ürünleri aynı mimariyi paylaşıyor. Bu da ekosistem içerisinde farklı ürün ve araçlarla çalışmayı kolaylaştırıyor, bu da bir etken olabilir.