Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: e-zeki - 22 Mayıs 2020, 02:38:11

Başlık: STM32F407 Codesize Sorunu
Gönderen: e-zeki - 22 Mayıs 2020, 02:38:11
Merhabalar.
Bir proje için  Flash bellekten dosya okuyup içeriği grafik LCD ile listelemem gerekiyor.
Proje Keypad,GLCD,ve USB Fatfs bölümlerinden oluşmakta. Bu bölümleri Keil'de 3 ayrı proje olarak oluşturdum ve çalıştırdım.
Flash oku yaz sil rutinlerinin olduğu proje= 19.5 kb.
GLCD önce 128x64 bir logo gösteriyor açılışta başka hiç birşey yapmıyor = 4.0kb
bu iki projeyi birleştirdiğimde GLCD logo basma kapalıyken =21.8 kb.
logo basma fonksiyounu aktif ettiğim an = 33.2kb

Tek fonksiyonu çağırıyorum,kod limiti aşıp hata veriyor ve daha keypad rutinlerini eklemedim bile.
Bir fonksiyonun, tek çağırımda 12kb arttırmasının sebebi nedir?
kullanılan herşey bire bir aynı.
Tecrübeli ustalarım bu konuda bilgilerini paylaşırlarsa çok makbule geçer.
Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: mufitsozen - 22 Mayıs 2020, 03:06:41
Alıntı yapılan: e-zeki - 22 Mayıs 2020, 02:38:11Merhabalar.
Bir proje için  Flash bellekten dosya okuyup içeriği grafik LCD ile listelemem gerekiyor.
Proje Keypad,GLCD,ve USB Fatfs bölümlerinden oluşmakta. Bu bölümleri Keil'de 3 ayrı proje olarak oluşturdum ve çalıştırdım.
Flash oku yaz sil rutinlerinin olduğu proje= 19.5 kb.
GLCD önce 128x64 bir logo gösteriyor açılışta başka hiç birşey yapmıyor = 4.0kb
bu iki projeyi birleştirdiğimde GLCD logo basma kapalıyken =21.8 kb.
logo basma fonksiyounu aktif ettiğim an = 33.2kb

Tek fonksiyonu çağırıyorum,kod limiti aşıp hata veriyor ve daha keypad rutinlerini eklemedim bile.
Bir fonksiyonun, tek çağırımda 12kb arttırmasının sebebi nedir?
kullanılan herşey bire bir aynı.
Tecrübeli ustalarım bu konuda bilgilerini paylaşırlarsa çok makbule geçer.

floating point kullanmadan deneyin, ve hafiza istatistiklerini karsilastirin.
Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: e-zeki - 22 Mayıs 2020, 03:46:08
@mufitsozen Hocam Floating point kullanmadım hiç. Hafıza istatistiklerini nasıl karşılaşırabilirim?
Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: RaMu - 22 Mayıs 2020, 07:22:40
Diyelim fonksiyonu yazdın ama hiç çağırmadın
o fonksiyon derlenmez dolayısıyla hafızada yer kaplamaz.
Bu bahsettiğin fonksiyon hafızada niye bu kadar yer kaplıyor diye soruyorsan
sadece basmaya çalıştığın logo bile 12kb olabilir.

Keil in küreği var internette.
Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: mufitsozen - 22 Mayıs 2020, 09:46:00
Alıntı yapılan: e-zeki - 22 Mayıs 2020, 03:46:08@mufitsozen Hocam Floating point kullanmadım hiç. Hafıza istatistiklerini nasıl karşılaşırabilirim?

butun compilerlarda linker'in "map" dosyasi olur. Oradan bakabilirsin.

Seneler once gerbay bu konuda cok detayli paylasimlar yapmisti ama forumdan atilinca silindi gitti galiba.

Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: e-zeki - 22 Mayıs 2020, 16:21:01
Alıntı yapılan: RaMu - 22 Mayıs 2020, 07:22:40Diyelim fonksiyonu yazdın ama hiç çağırmadın
o fonksiyon derlenmez dolayısıyla hafızada yer kaplamaz.
Bu bahsettiğin fonksiyon hafızada niye bu kadar yer kaplıyor diye soruyorsan
sadece basmaya çalıştığın logo bile 12kb olabilir.

Keil in küreği var internette.
Hocam sorun orada zaten fonksiyonu her durumda çağırıyorum. Bu fonksiyon derleniyor.
A = 4 kb(GLCD Projesi logo basma çağırıldı.)
B = 20kb( Flash disk projesi oku/yaz/değiştir çağırılı)
C = 33 kb(GLCD + Flash disk logo basma / oku/ yaz/ değiştir çağırılı.)
gibi bir durum oluyor. bunun sebebini anlayamadım.

Ayrıca logo 1kb

@mufitsozen hocam map dosyasına bakacağım müsait olunca.

@RaMu  Küreği bulamadım bir türlü eğer kolayda link varsa...
Başlık: Ynt: STM32F407 Codesize Sorunu
Gönderen: RaMu - 22 Mayıs 2020, 20:18:38
Şu video nun açıklamasındaydı uçmuş ama yorumlarda var:
Biraz virüs gibi ama ben bir zararını görmedim,
antivirüs programını askıya alman gerekebilir,
birde dosyayı rardan çıkardıktan sonra silememiştim, unlocker adlı program ile silmiştim.
https://youtu.be/U2aXOjsdNBY