Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: apsis - 06 Nisan 2021, 14:48:13

Başlık: 32F0'da kullanılan hafıza
Gönderen: apsis - 06 Nisan 2021, 14:48:13
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.


(https://i.ibb.co/F38VLnL/image.png) (https://ibb.co/F38VLnL)
Başlık: Ynt: 32F0'da kullanılan hafıza
Gönderen: Tagli - 06 Nisan 2021, 16:39:58
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.
Başlık: Ynt: 32F0'da kullanılan hafıza
Gönderen: quarko - 06 Nisan 2021, 17:45:07
@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.
Başlık: Ynt: 32F0'da kullanılan hafıza
Gönderen: apsis - 06 Nisan 2021, 21:50:26
Anladım. Bunu yapacağım. Teşekkür ederim. ::ok