Son dönemde adını sıklıkla duyduğumuz ARM işlemcilerinin gün geçtikçe popülaritesini artıran ARM-Cortex-M3 serisi, genel olarak mikrodenetleyici uygulamalarında kullanılmak üzere tasarlanmış. Yakın zamana kadar ARM7TDMI serisinin kullanıldığı mikrodenetleyiciler yerini yavaş yavaş bu seriye bırakıyor.
ARM işlemci ailesinden ARM7TDMI ve ARM Cortex – M3 işlemcilerini karşılaştırmadan önce ARM mimari ailesine kısaca göz atalım. ARM işlemci adlandırmaları biraz kafa karıştırıcı görünse de temel olarak şu şekilde ilerliyor:
Mimari | Aile |
---|---|
ARMv1 | ARM1 |
ARMv2 | ARM2, ARM3 |
ARMv3 | ARM6, ARM7 |
ARMv4 | StrongARM, ARM7TDMI, ARM9TDMI |
ARMv5 | ARM7EJ, ARM9E, ARM10E, XScale |
ARMv6 | ARM11 |
ARMv7 | Cortex |
Yukarıdaki tablonun ayrıntılı halini Wikipedia makalesinde bulabilirsiniz.
ARM7TDMI yakın zamana kadar 8 bit mikrodenetleyicilere rakip olarak geliştirilen düşük maliyetli 32 bit mikrodenetleyicilerin içerisinde yer alan işlemciydi. Son dönemde Cortex-M3 serileri bu görevi devralmaya başladı. Birçok firma geleneksel olarak 8/16 bit mikrodenetleyicilerin kullanıldığı alanlara yönelik Cortex-M3 tabanlı mikrodenetleyiciler üretmeye başladılar.
Cortex Serisi’ne gelen olarak bakacak olursak 3 kategoriye ayrıldığını görüyoruz:
Cortex – M serisi:
Klasik 8/16 bit mikrodenetleyicilerin kullanıldığı ve düşük maliyet / düşük güç tüketimi gerektiren alanlarda kullanılmak üzere geliştirilen seridir. 40’tan fazla firma bu serinin lisansını almış durumda.
Cortex – R serisi:
Bu seri “gerçek zamanlı performans” gereken uygulamalar için geliştirilmiş. Henüz diğer serilere göre daha yeni olduğundan bu serinin kullanıldığı ürün sayısı kısıtlı.
Cortex – A serisi:
Genellikle bir işletim sistemi üzerinde üst seviye uygulamalar geliştirmek için üretilmiş olan seri. Günümüzde kullandığımız birçok mobil cihaz içerisinde bu seriye ait işlemciler bulunuyor.
[ad#ad-1]
CORTEX – M3
Cortex-M3 serisi işlemcilerle tasarlanmış birçok mikrodenetleyici bugün piyasada yerini almış durumda. En başta NXP ve ST olmak üzere birçok firmanın ürünleri bulunuyor. Son dönemde oldukça popüler olan ve benim de incelemesini yaptığım STM32 mikrodenetleyicileri de bu seriye ait.
Cortex-M3 serisini daha önceki ARM7TDMI serisi ile karşılaştıracak olursak şu farkları görüyoruz:
- ARM7TDMI serisi Von Neuman mimarisine sahipken Cortex-M3 Harvard mimarisinde.
- Cortex-M3 Thumb-2 komut setini destekliyor. Dolayısıyla ARM7TDMI için yazılmış kodların yeniden derlenmesi gerekiyor. Thumb-2 komut seti daha önceki 16 bit Thumb komut setinin kod yoğunluğunda daha yüksek bir performans elde edilmesini sağlıyor. ARM7 serisinde ARM ve THUMB komut setleri arasında geçişler yapmak gerekirken Thumb-2 komut seti hem 16 hem 32 bit komutların bir arada ve mod geçişi olmaksızın çalıştırılmasına olanak veriyor.
- İstisnai durum (exception) yönetimi de cortex serisinde oldukça farklı. Cortex-M3 serisinde dahili vektörel kesme denetleyicisi bulunuyor. Yani bütün Cortex-M3 serisi mikrodenetleyicilerin kesme sistemi standart hale geliyor. Bu da değişik üreticilerin mikrodenetleyicileri için yazılmış kodların taşınmasını kolaylaştırıyor. Kesme ünitesinde dahili önceliklendirme, geç gelen yüksek öncelikli kesmenin işleme alınması, kesme zincirlemesi gibi özellikler bulunuyor. Ayrıca ARM7TDMI serisinde bulunan 7 çalışma modu, 2’ye düşürülmüş. Sadece “Thread” ve “Handler” modları bulunuyor. Kesmeye girerken kaydedicilerin otomatik kaydedilmesi sağlanıyor. 240’a kadar fiziki kesme hattı yer alabiliyor.
- ARM7TDMI serisinde çevre birimleri herhangi bir bellek adresinde yer alabilirken Cortex-M3 serisinde bellek haritası sabit. Bu da yine farklı mikrodenetleyiciler arasında geçişleri kolaylaştıran bir özellik.
- Uyku modları Cortex-M3 ile beraber entegre olarak geliyor.
- Opsiyonel bellek koruma sistemi de entegre olarak geliyor.
- Cortex-M3’te tek çevrimlik çarpma ve bölme komutları bulunuyor.
- Cortex-M3’te değişkenlerin bellek yerleşiminde veri hizalamasına gerek duyulmuyor. Bu da belleğin derleyiciler tarafından etkin bir şekilde kullanılmasına olanak sağlıyor.
- 8051 mimarisine aşina olanların çok iyi bildiği “bit erişim özelliği (bit band)” Cortex-M3’te de bulunuyor. Böylelikle yoğun şekilde bit üzerinde işlem yapılan, IO kontrol ağırlıklı uygulamalarda yüksek performans elde edilebiliyor.
ARM Cortex – M3 Geliştirme Araçları:
ST, NXP, Texas Instruments, Toshiba gibi birçok büyük firmanın Cortex-M3 tabanlı mikrodenetleyici aileleri bulunuyor. Geliştirme ortamı olarak da açık kaynaklı GNU araçları ve Keil, Attolic, Codesourcery, IAR gibi firmaların araçlarını kullanmak mümkün. Ücretli araçların birçoğunun kısıtlı özelliklere sahip ücretsiz sürümleri de var.
Bütün bu özellikleriyle ARM Cortex-M3 serisini birçok ürünün içerisinde göreceğiz gibi görünüyor.
Kaynaklar:
ARM Cortex M3: http://www.arm.com/products/processors/cortex-m/cortex-m3.php