Gömülü Ders 6

IVT , NVIC ve CMSIS

Altıncı derste, ARM mimarisinde kesmelerin yapısı ve sistem açılışındaki rolleri teknik olarak analiz edilmektedir. IVT (Interrupt Vector Table) kullanılarak sistemin başlangıç süreci anlaşılmakta ve her bir kesmenin sistem içerisindeki yeri açıklanmaktadır.

NVIC mimarisi, klasik mikrodenetleyici sistemleriyle karşılaştırmalı olarak incelenmekte; Little Endian veri yerleşimi, inline fonksiyonların derleyici optimizasyonlarına etkisi ve bit-banding’in neden yaygın tercih edilmediği gibi konular teknik düzeyde değerlendirilmektedir.

Ders, CMSIS ile yazılımın donanım üzerindeki kontrolünü düzenleme yollarını detaylandırarak, load-store mimarisi ve volatile kullanımı gibi ARM çekirdeğine özgü yapıların pratikteki karşılıklarını sunmaktadır.

Gömülü Ders 7

Bit-Banding, CMSIS ve Donanım Katmanları

Bit-banding, CMSIS, Hardware Layers

Yedinci haftada, ARM Cortex-M mimarisine özgü bit-banding tekniği ele alınmakta; atomik bit manipülasyonu gereksinimleri bağlamında kullanım gerekçeleri açıklanmaktadır. Bit-banding'in kesme güvenliği ve kod basitliği üzerindeki etkisi örneklerle sunulmaktadır.

CMSIS standardı ile birlikte donanım erişiminin nasıl sadeleştirildiği, yazılım katmanlarının (ASM, CMSIS, LL, HAL, BSP, Application) sistematik olarak nasıl inşa edildiği anlatılmaktadır. Donanım-soyutlama katmanlarının rolü üzerinden taşınabilir ve sürdürülebilir gömülü yazılım mimarilerinin temelleri aktarılmaktadır.

Gömülü Ders 8

Tri-State, High-Z, Peripheral Clock, CMSIS ve Startup Süreci

Gömülü Sistemler - Tri-State ve Başlangıç Akışı

Sekizinci derste, Tri-State buffer yapısının mantığı, High-Z (yüksek empedans) kavramı ve ARM mikrodenetleyicilerde bu yapıların nasıl uygulandığı ele alınmaktadır. Veri yolunun paylaşımı, open-drain modları ve floating girişlerin donanım seviyesinde nasıl kontrol edildiği örneklerle açıklanmaktadır.

Ayrıca çevresel birimlere clock verilme mantığı teknik olarak ele alınmakta; güç tüketimi, sistem kontrolü ve RCC yapılandırmaları ile ilişkisi detaylandırılmaktadır. CMSIS tabanlı konfigürasyon sistematiği, hedef işlemcinin tanımlanması, başlık dosyalarının dahil edilmesi ve build ayarları üzerinden doğru derleme süreci anlatılmaktadır.

Son olarak, `Run to main()` debug ayarının etkileri, `Reset_Handler`, `SystemInit`, .data/.bss segmentleri, libc init ve main() çağrısı gibi sistem başlangıç aşamaları teknik düzeyde aktarılmakta, CMSIS-mimarili sistem açılış süreci açıklanmaktadır.

Gömülü Ders 9

Derleme Süreci, PUBWEAK, Load/Store ve PLL Mantığı

Gömülü Sistemler - Derleme ve PLL

Dokuzuncu derste gömülü sistemlerde yazılımın donanım üzerinde çalışabilir hale gelmesini sağlayan temel süreçler teknik düzeyde ele alınmaktadır. Derleyici tarafından oluşturulan `.o` uzantılı nesne dosyalarının, linkleme süreciyle `.hex` veya `.elf` formatlarına dönüştürülmesi; bu işlemlerin neden ayrı adımlarla yapıldığı, object code’un tek başına neden yeterli olmadığı detaylandırılmaktadır.

Ayrıca startup assembly dosyalarında kullanılan `PUBWEAK` ifadesi üzerinden zayıf sembol tanımı kavramı açıklanmakta; kullanıcı tanımı yapılmadığında default fonksiyonların çalışması gibi sistematikler anlatılmaktadır. Bu yapıların IRQ handler gibi kritik işlevlerde nasıl kullanıldığı örneklenmiştir.

Load/Store mimarisi, ARM işlemcilerinin bellekle yalnızca `LDR` ve `STR` komutlarıyla etkileşim kurmasını sağlayan mimari yapı olarak işlenmektedir. Doğrudan bellekten işlem yapılmamasının sebebi, sistem tasarımı ve performans açısından değerlendirilmiştir.

Dersin son bölümünde PLL yapısı detaylı biçimde açıklanmakta; M, N ve P parametrelerinin sistem saatine etkisi üzerinden örneklemelerle gösterilmektedir. SYSCLK’in güvenli aralıkta kalması ve giriş/çıkış frekanslarının neden kritik olduğu teknik düzeyde ele alınmaktadır.