ARM logosu taşıyan bir çip satın alamazsınız. ARM bir çip üreticisi değildir — bir fikri mülkiyet (IP) şirketidir. İşlemci mimarisini tasarlar, lisanslar ve gelir elde eder. Sizin elinize geçen STM32, nRF52 veya iMX RT çipi, ARM'ın mimarisini lisanslayan bir şirketin ürettiği üründür.
Bu yazının sonunda şunları anlayacaksınız: ARM'ın iş modelini ve neden bu kadar yaygınlaştığını; Cortex-M serisinin farklı çekirdeklerini ve aralarındaki farkları; bir ARM çekirdeğinin nasıl somut bir MCU haline geldiğini; STM32 gibi ürünleri çalıştıran altyapıyı.
{anecdote:ARM mimarisi 1985 yılında Acorn Computers tarafından geliştirildi. Bugün yıllık 25 milyarın üzerinde ARM çekirdeği içeren çip üretilmektedir — bu, dünyada üretilen tüm işlemcilerin büyük çoğunluğudur.}
Geleneksel bir çip şirketi tasarlar ve üretir. ARM yalnızca tasarlar. Sonra bu tasarımı başka şirketlere lisanslar:
Bu model, ARM çekirdeklerinin bu kadar çok üründe yer almasının nedenidir. Şirketler çekirdek mimarisini sıfırdan tasarlamak yerine kanıtlanmış bir mimariyi lisanslar ve kendi farklılıklarını peripheral katmanına taşır.
ARM, farklı kullanım senaryoları için farklı çekirdek aileleri tanımlamıştır:
| Aile | Hedef | Örnek ürünler |
|---|---|---|
| Cortex-M | Mikrodenetleyiciler, gömülü sistemler | STM32, nRF52, LPC, SAMD |
| Cortex-R | Gerçek zamanlı, güvenlik kritik | Otomotiv ABS, sabit disk kontrol |
| Cortex-A | Uygulama işlemcileri, Linux | Raspberry Pi, akıllı telefon SoC |
Gömülü sistemler dersleri kapsamında çalıştığınız çekirdek Cortex-M serisidir.
Cortex-M serisi içinde de farklı çekirdekler bulunur. Her biri farklı bir güç/performans dengesini hedefler:
| Çekirdek | Boru Hattı | DSP | FPU | Hedef kullanım |
|---|---|---|---|---|
| M0 | 3 aşamalı | - | - | Ultra düşük güç, basit sensörler |
| M0+ | 2 aşamalı | - | - | M0'dan daha verimli, IoT düğümleri |
| M3 | 3 aşamalı | - | - | Genel amaçlı, iyi performans/maliyet dengesi |
| M4 | 3 aşamalı | ✓ | Opsiyonel | Motor kontrol, ses işleme, filtreler |
| M7 | 6 aşamalı | ✓ | ✓ | Yüksek performans, çift precision FPU |
| M33 | 3 aşamalı | ✓ | Opsiyonel | TrustZone güvenlik, IoT |
DSP (Digital Signal Processing) komutları: Sinyal işleme için optimize edilmiş SIMD komutlarıdır. Filtre, FFT ve motor kontrol algoritmalarını hızlandırır.
FPU (Floating Point Unit): Ondalıklı sayı hesaplamalarını yazılım yerine donanımda yapar. Sensör fusion, PID kontrol ve ses işlemede büyük fark yaratır.
Bu platformda ağırlıklı olarak Cortex-M0 ve Cortex-M4 ile çalışacaksınız — STM32F0 serisi M0, STM32F4 serisi ise M4 çekirdeği kullanır.
ARM'ın 32-bit komut seti (A32/T32) iki farklı kodlama moduna sahiptir:
ARM modu (A32): Her komut 32 bit genişliğindedir. Yüksek performans, ancak daha fazla kod boyutu.
Thumb modu (T16/T32): Komutlar 16 veya 32 bit olabilir. Cortex-M serisi yalnızca Thumb-2 modunda çalışır — karma genişlik sayesinde kod yoğunluğu artar, Flash kullanımı azalır.
Pratik anlamı: C kodu yazdığınızda derleyici (GCC) Thumb-2 komutlarını üretir. Bunu fark etmezsiniz — ama Flash'ın daha verimli kullanıldığını görürsünüz.
Farklı şirketlerin Cortex-M tabanlı ürünleri arasında yazılım taşınabilirliğini sağlamak için ARM, CMSIS (Cortex Microcontroller Software Interface Standard) standardını tanımlamıştır.
CMSIS şunları kapsar:
NVIC_EnableIRQ, __WFI, SysTick_Config)/* CMSIS-Core kullanımı — tüm Cortex-M ailesinde aynı */
NVIC_EnableIRQ(TIM2_IRQn); /* TIM2 kesmesini etkinleştir */
NVIC_SetPriority(TIM2_IRQn, 1); /* Kesme önceliğini ayarla */
__WFI(); /* Wait For Interrupt — uyku */
Bu fonksiyonlar STM32'de de nRF52'de de NXP LPC'de de aynıdır. Çekirdek katmanındaki kodunuz taşınabilirdir.
STM32 ailesi, Cortex-M çekirdeğini alan ST Microelectronics'in kendi peripheral setini eklediği üründür. Çekirdek + peripheral = MCU.
ARM Cortex-M4 çekirdeği (ARM'ın tasarladığı)
+
Peripheral katmanı: (ST'nin tasarladığı)
├── APB/AHB veri yolları
├── RCC (saat yönetimi)
├── GPIO, Timer (TIM1–TIM14)
├── ADC (12-bit, çok kanallı)
├── USART, SPI, I²C, CAN
├── DMA kontrolcüsü
└── Flash ve bellek denetleyicisi
= STM32F407 MCU
STM32 ailesinin farklı serileri farklı Cortex-M çekirdekleri kullanır:
| STM32 Serisi | Cortex-M Çekirdeği | Özellik |
|---|---|---|
| F0 | M0 | Düşük maliyet, temel uygulamalar |
| F1 | M3 | Genel amaçlı, geniş ekosistem |
| F4 | M4 (FPU) | Motor kontrol, DSP, yüksek performans |
| F7 / H7 | M7 (FPU) | Çift precision, çok yüksek hız |
| L0 / L4 | M0+ / M4 | Ultra düşük güç, pil ömrü kritik |
| Kavram | Açıklama |
|---|---|
| ARM | IP lisans şirketi — çip üretmez, mimari tasarlar |
| Cortex-M | Mikrodenetleyici sınıfı ARM çekirdekleri |
| Thumb-2 | Cortex-M'in 16/32-bit karma komut seti |
| CMSIS | ARM'ın MCU yazılım standartları — taşınabilir çekirdek API'si |
| STM32 | Cortex-M + ST peripheral'ları = somut MCU ürünü |
| Lisans modeli | ST, Nordic, NXP gibi şirketler çekirdeği alır, kendi peripheral'larını ekler |