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