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.
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.
@mufitsozen Hocam Floating point kullanmadım hiç. Hafıza istatistiklerini nasıl karşılaşırabilirim?
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.
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.
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...
Ş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