32F0'da kullanılan hafıza

Başlatan apsis, 06 Nisan 2021, 17: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.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

apsis

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

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.