stm32 snprintfte double ve float sorunu

TunahanC

SbX
Katılım
31 Mayıs 2024
Mesajlar
216
Elimde bu linkte bulunan stm32 geliştirme kartı var. MCU-MPU settings kısmından "-u_printf_float" kutucuğunu aktif ettiğim halde snprintf içerisine float ya da double değer yazdıramıyorum. Normal discovery board kullanırken bu tür bir sorun olmuyor. Örnek olarak aşağıdaki arrayda "B:123.45 Y: 234.56" gibi bir değer yazması gerekli fakat yazmıyor. GNU-GCC seviyesinde bir sorun olabilir mi? Ya da MCU'nun kendisinde böyle sorun mümkün müdür? İnternette de bunlardan bahsedilmiş biraz ama çözemedim. Varsa çözüm yöntemlerinizi bekliyorum.
Arr.JPG
 
Bu kullanılan C runtime library ile ilgili. Linker ayarlarında, float printf desteği olan C runtime library seçmen lazım. Ama tam olarak nasıl yapılacağı kullanılan IDE ye göre değişir.
 
Bu kullanılan C runtime library ile ilgili. Linker ayarlarında, float printf desteği olan C runtime library seçmen lazım. Ama tam olarak nasıl yapılacağı kullanılan IDE ye göre değişir.
Hocam CubeIDE standart ayarlarında kullanıyorum ama bir kurcalayayım belki bir şey bulurum.
 
Reduced C (--specs=nano.specs) kullanıyorum. Kodu aldığım diğer projeye baktım o da aynı runtime library'i kullanıyor. Ben bu kodu stm32f407 disc boardda çalıştırdım aslında böyle bir hata vermesi çok garip geliyor bana.
 
Reduced C (--specs=nano.specs) kullanıyorum. Kodu aldığım diğer projeye baktım o da aynı runtime library'i kullanıyor.

Aynen. float destekleyen kütüphaneyi seçmen gerekecek.

Bir de printf desteği "heap" de istiyor. Eğer normalde senin firmware'de heap'a ihtiyacın olmadı ise, belirli bir heap de ayırman lazım. Ben 8192 byte ayırmıştım ARM M3 için ve sorunsuz kullandım.
 
Aynen. float destekleyen kütüphaneyi seçmen gerekecek.

Bir de printf desteği "heap" de istiyor. Eğer normalde senin firmware'de heap'a ihtiyacın olmadı ise, belirli bir heap de ayırman lazım. Ben 8192 byte ayırmıştım ARM M3 için ve sorunsuz kullandım.
Şu an buna vaktim kalmadı ama yarın ilk iş buna bakacağım teşekkürler.
 
çözümü burada anlatılmış:
Yok bunu biliyorum. Bu açılmadığı zaman CubeIDE zaten uyarı veriyor. Benim hatam tamamen snprintf içerisinin float ile yazılamıyor olması. @taydin hocamın dediği heap ayarlarından min heap 0x1000 max heap 0x2000 olarak ayarladım fakat sorun hala devam ediyor. Neyse pes etmek yok.
 
Son düzenleme:
Sorunu çözüldü bu arada. Sanırım bu programı ilk debug ettiğim zaman "-u_printf_float" kutucuğu seçili değildi. Debug ve Release'yi sildim heap ayarlayıp tekrar debug yaptığım zaman çözüldü. İşin ilginç tarafı bir çok kez clean-build yapmıştım aslında demek ki tam "clean" yapmıyormuş.
 

Forum istatistikleri

Konular
7,582
Mesajlar
126,799
Üyeler
3,071
Son üye
tekin124

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top