Flash Bellek Boyutu: Kaç Kilobyte Yeterli?

Anket

Seçtiğin mikrodenetleyicinin flash'ı doldu mu hiç?

0 oy

Mikrodenetleyici seçerken flash bellek boyutu sık sık göz ardı edilen bir karar noktasıdır. Ama yanlış seçim yaparsanız prototip aşamasında sorun çıkmaz; üretim başladığında kod sığdıramama ya da pahalı bir chip'e geçiş yaşarsınız.

Flash bellek basit görünür: kodun kaç byte yer kapladığını bil, o kadar alan olan bir chip seç. Gerçek ise daha karmaşık. Derleyici (kodu makine diline çeviren araç) optimizasyon seviyesine, kütüphanelerin boyutuna, string verilerine ve debug sembollerine bağlı olarak aynı yazılım farklı boyutlarda derlenebilir.

Bir STM32L0 üzerinde çalıştığım proje bunu öğretti bana. Başlangıçta 64KB flash yeterli sanmıştım. Sensor kütüphanesi eklediğimizde, WiFi stack'i entegre ettiğimizde, error handling ekledikçe 96KB'ye ulaştı. Eğer 128KB chip almamış olsaydım, baştan tasarımı değiştirmek zorunda kalırdım.

Praktik bir yaklaşım şu: hedeflediğin işlevselliği 80% yapan bir prototip yaz, derle ve.elf dosyasının boyutuna bak. Sonra %20 daha ekleyebilecek kadar buffer ekle. Çoğu zaman bu, "bir üst flash tier'ı seç" anlamına gelir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Bir diğer hata, kütüphane seçiminde kayıtsız olmak. Arduino'nun String sınıfı vs C'nin sprintf() vs sprintf_P() (program memory'den oku) arasında 2-3KB fark olabilir. RTOS eklerseniz hemen 20-30KB gider. Bluetooth stack'i 80-120KB. Bu rakamları önceden bilin.

Flash boyutunun başka bir yüzü: yazma/silme döngüsü. Daha küçük chip'ler genellikle daha az yazma dayanıklılığına sahiptir. Firmware update sırasında ya da EEPROM simülasyonu yapıyorsanız bu kritik olur.

Benim önerilerim: 8-16KB, sade sensör okuması için yeterli. 32-64KB, basit IoT cihazları ve state machine'ler için. 128KB+, WiFi, Bluetooth, kompleks logic ya da çoklu sensor fusion için. Üretim sürüsüne girmeden önce, hedef chip'te tam kodu derleyip flash harita (memory map) raporunu oku. Boş alan %20'den az kalmaması iyi bir kural.

Flash bellek ucuz değildir; ama eksik bırakmak daha pahalıdır.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz