STM32CubeIDE, STM32 mikrodenetleyici projelerinde hem geliştirme hem de hata ayıklama süreçlerini kolaylaştıran güçlü bir araç. Ancak çoğu kullanıcı, debug sürecini sadece breakpoint
koyup değişkenleri tek tek kontrol ederek geçiriyor. Oysa ki “Live Expressions” (canlı ifadeler) özelliği ile, debug sırasında gerçek zamanlı değişken değişimlerini izleyerek çok daha verimli bir şekilde sorunları analiz edebilirsiniz.
Bu yazıda, STM32CubeIDE’de canlı değişken takibi nasıl yapılır, ne gibi avantajlar sağlar ve bunu bir örnek proje üzerinden nasıl kullanabileceğinizi adım adım anlatacağım.
Nedir Bu "Live Expressions"?
Live Expressions penceresi, kodunuz çalışırken belirli değişkenleri (ya da ifadeleri) sürekli gözlemlemenizi sağlar. Kod breakpoint
’te durmasa bile, değişkenlerin değerleri anlık olarak güncellenir. Bu, özellikle zamanla değişen sayıcılar, PWM duty cycle’ları veya sensör değerleri gibi dinamik verileri takip etmek için çok faydalıdır.
Neden Kullanmalısınız?
Live Expressions ile şunları kolaylıkla yapabilirsiniz:
-
Kod kesintiye uğramadan değişkenleri takip edebilirsiniz.
-
Belirli bir algoritmanın anlık çıktısını grafiksel ya da sayısal olarak izleyebilirsiniz.
-
Delay’lerle uğraşmadan, breakpoint koymadan performans sorunlarını veya mantıksal hataları yakalayabilirsiniz.
-
Gerçek zamanlı sistemlerde, kod akışını bozmadan değerlerin nasıl değiştiğini görme imkânı sağlar.
Uygulamalı Örnek: ADC ile Sıcaklık Ölçümü
Diyelim ki bir STM32F103RB mikrodenetleyici ile dahili sıcaklık sensöründen ADC kullanarak sıcaklık değeri okuyoruz. Kodumuz şöyle:
Adım Adım: Live Expressions Kullanımı
1. Debug Moduna Geçin
Projeyi build ettikten sonra Debug
moduna geçin (F11
veya üstteki bug ikonuna tıklayarak).
2. Live Expressions Panelini Açın
Debug görünümüne geçtikten sonra:
-
Menüden Window > Show View > Expressions yolunu izleyin.
-
Açılan panelin ismi "Expressions" olabilir ama bu panel canlı güncelleme desteği sunar.
3. Değişken Ekleyin
-
Expressions paneline sağ tıklayın ve Add Watch Expression seçeneğine tıklayın.
-
Açılan kutuya
temperature
yazın. -
Enter’a bastığınızda, değişken panelde belirecek.
4. Canlı Güncellemeyi Görüntüleyin
-
Kod hala çalışırken (pause durumda değilken!)
temperature
değerinin saniyede iki kez güncellendiğini göreceksiniz. -
Değer sürekli güncelleniyorsa, sisteminizde herhangi bir kesinti olmadan anlık sıcaklık verisini izleyebiliyorsunuz demektir.
İleri Seviye: İfade Takibi (Expression Tracking)
Bu panelde sadece değişken değil, ifade de yazabilirsiniz. Örneğin:
şeklinde yazarsanız, bu ifade true
veya false
olarak sürekli değerlendirilir. Bu da debug sürecinde koşul kontrollerini anında görmek için ideal bir yöntemdir.
İpuçları & Dikkat Edilmesi Gerekenler
-
Optimization seviyeleri yüksekse (
-O2
,-O3
) bazı değişkenler derleyici tarafından optimize edilebilir ve debug sırasında görünmeyebilir. Geliştirme aşamasında-O0
(optimizasyon kapalı) kullanmanızı öneririm. -
Eğer değişken global değilse, yani fonksiyon içindeyse ve
static
değilse, Live Expressions’da gözükmeyebilir. Bu durumda değişkenin kapsamını değiştirin. -
volatile
tanımlaması, anlık değişen donanım temelli değişkenlerde kritik öneme sahiptir. Bu sayede değer her seferinde RAM’den okunur.
Sonuç: Canlı Takiple Daha Akıllı Debug
Live Expressions, STM32CubeIDE’nin az bilinen ama çok etkili bir özelliği. Özellikle gömülü sistemlerde, zamanla değişen verileri izlemek ve mantıksal hataları tespit etmek için oldukça kullanışlıdır.
Her debug seansında breakpoint koymak yerine, bu özelliği kullanarak sisteminizi çalışır haldeyken analiz edebilir, daha kısa sürede daha isabetli çözümler üretebilirsiniz.
Eğer bu özelliği daha önce kullanmadıysanız, bir sonraki debug seansınızda denemenizi kesinlikle tavsiye ederim. STM32CubeIDE’nin sunduğu bu ve benzeri küçük araçlar, geliştirme sürecinizde büyük farklar yaratabilir.