Arm Tabanlı Mikroişlemciler #07 | Sonlu Durum Makineleri (FSM), Donanım Zamanlayıcı ve RTOS

ARM Tabanlı Gömülü Sistem Tasarımı

Eğitmen: Dr. Süleyman Burak ÇELİK

Geçen derste kesmeyle düğmeyi hızla okuduk, ama uzun süren renk görevi tepkiyi hâlâ 1.5 saniyeye kadar geciktiriyordu. Bu derste görevleri kısaltıyoruz: önce görevi sonlu durum makinesiyle (FSM) küçük adımlara bölüyor, sonra beklemeyi donanım zamanlayıcıya bırakıyoruz. Breadboard üzerindeki RGB ledde farkı gözle görüyor, her süre hesabını adım adım yapıyoruz. Bu derste: - Fikir: görev işini bitirmeden geri dönsün; her çağrıda bir adım, durum değişkeni - Durum geçiş çizgesi ve tablosu - C ile durum makinesi: switch, enum, static - Tepki: en kötü 1.5 s → 0.5 s, ortalama 0.25 s; adımı ikiye bölünce 0.25 s - Donanım zamanlayıcı: 48 MHz / 48000 = 1000 Hz → 1 ms; sayaca 500 yükle → 500 ms - Bekleme durumları: süre dolmadan durum makinesi ilerlemez - Artık hiçbir görev uzun değil: tepki mikrosaniyeler düzeyinde - Bekleyen görevler, çekirdek ve işletim sistemi: saniyede 200 000 çağrıya karşılık 2 gerçek iş - Görev önceliği ve görev kesme (kesintili zamanlayıcı) - Gerçek zamanlı sistemler, son tarih ve gerçek zamanlı işletim sistemi (RTOS) - Üç tuzak Bölümler: 0:00 Geçen Ders ve Bugün 0:22 Breadboard'da İki Deneme 0:44 Fikir: Görevi Adımlara Böl 1:09 Durum Geçiş Çizgesi ve Tablosu 1:34 C ile Durum Makinesi 1:58 Tepki: 1.5 s'den 0.5 s'ye 2:25 Donanım Zamanlayıcı 2:56 Bekleme Durumları 3:20 Artık Hiçbir Görev Uzun Değil 3:41 Bekleyen Görevler ve Çekirdek 4:14 Öncelik ve Görev Kesme 4:42 Gerçek Zamanlı Sistemler 5:09 Üç Tuzak 5:34 Özet ve Sıradaki Ders Böylece üçüncü bölüm bitti. Sıradaki derste işlemcinin içine giriyoruz: Cortex-M0'ın yazmaçları ve bellek haritası. Kaynak kitap: Alexander G. Dean, Embedded Systems Fundamentals with Arm Cortex-M based Microcontrollers, Nucleo-F091RC 2. baskı (Arm Education Media) — Bölüm 3, s. 74–86 (konu sırası ve kavramlar). Örnekler özgündür. Elektrik-Elektronik, Bilgisayar, Mekatronik ve Kontrol Mühendisliği öğrencileri için Arm Tabanlı Mikroişlemciler serisinin yedinci dersi.