32F0'da kullanılan hafıza

Başlatan apsis, 06 Nisan 2021, 14:48:13

apsis

Mcu'nun boş alanına veri yazma ihtiyacı doğdu. Utility ile boşta page var mı diye bakarken aşağıdaki durum dikkatimi çekti.

Derlenen program 0x08005090 adresinden 0x08005160'a kadar kısımları gözüküyor. 0x08005170'den itibaren flash sonuna kadar boş alan olmaksızın programın geri kalanı var. Normalde flash'ın son page'ine veri yazardım ancak böyle olunca daha sonraki derlemelerde problem çıkacağını düşünerek yazma silme yapmak istemiyorum. Zaten istesem de yapamam zira 1 page içerisinde hem boş hem dolu alanlar mevcut. Tabi bunu kodları düzenleyerek aşmaya çalışabilirim.

Ancak aşağıdaki durumun nedenini öğrenmem gerekiyor.



"Makineye Beyin" MEKATRONİK

Tagli

Bellek çok sıkışık değilse ve bir page'lik alan ayırabiliyorsan, linker script'te (bağlayıcı betiği?) bunu belirtebilirsin. Orada flash kapasitesini 1 page eksik göster. Bu durumda bağlayıcı oraya herhangi bir şey yerleştirmez.
Gökçe Tağlıoğlu

quarko

@Tagli hocam haklı. Flash ta yer müsaitse, linker script dosyasında rom alanının bitiş adresini biraz geri çekin. Son sektör(ler) size kalsın. STM32 de EEPROM emulation da aynı mantıkla 2 sektörü kendine ayırarak çalışıyor.
"Vicdanın ziyası ulum-u diniyedir. Aklın nuru fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder."

apsis

Anladım. Bunu yapacağım. Teşekkür ederim. ::ok
"Makineye Beyin" MEKATRONİK