Stm32f407'de flash'a alanına yazma okuma

Başlatan yamak, 03 Mart 2014, 20:07:53

yamak

Stm32f407'de çalışma esnasında flash hafızaya bazı verileri kayıt etmek istiyorum.
Bu konu ile ilgili yararlanacağım döküman vs. var mı acaba.Application Note'lara baktım bulamadım sizin bildiğiniz varsa paylaşabilir misiniz?

mistek

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

yamak

Hocam burayı okudum ama aynı olup olmadığını bilmediğim için sorayım dedim.

LukeSkywalker

MikroC'de bu iş için kütüphane var.

muhittin_kaplan


mistek

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

muhittin_kaplan


fgokcegoz

Alıntı yapılan: yamak - 03 Mart 2014, 20:07:53
Stm32f407'de çalışma esnasında flash hafızaya bazı verileri kayıt etmek istiyorum.
Bu konu ile ilgili yararlanacağım döküman vs. var mı acaba.Application Note'lara baktım bulamadım sizin bildiğiniz varsa paylaşabilir misiniz?

STM32F10x için yapılmış örnek paylaşılmılştı... Çok farklı değildir herhalde...

https://www.picproje.org/index.php/topic,51574.msg391567/topicseen.html#msg391567
"Vicdanın ziyası, ulûm-u diniyedir. Aklın nuru, fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder." (Bediüzzaman Said Nursi)

yamak

#8
Stm32f4xx Std Library'deki flash kütüphanesindeki kodları biraz inceledim.Ufak tefek farklılıklar gözüme çarptı ama baya benziyo.
Fakat şöyle bir sorum var.Belki verdiğiniz linkte bir yerlerde yazıyo ama 10 sayfa olduğu için gözümden kaçırmış olabilirim.
Flash'ta bir yere veri yazarken yazacağımız yeri nasıl seçiyoruz.Yani yazacağımız yerde program kodlarından bir parça olabilir.Son sektörlerden birine mi yazıyoruz yoksa yazmadan önce okuyup ona göre mi yazıyoruz?

muhittin_kaplan

EEPROM emulatorunde istersen okursun, yazarsın. ama yaz dediğinde bilgi varmı diye bakmıyor.(diye hatırlıyorum)

yamak

Stm32f4 için yazılmış bir eeprom emülasyonu bulamadım.Ayrıca eeprom emülasyonuna ihtiyacım yok.Yani yazacağım verinin çok hızlı yazılmasına gerek yok gerekli bölgeye silip yazabilirim.Bir kaç konfigürasyon ayarı ve ufak bir veri tabanı saklamak istiyorum.
Yazacağım yerin kontrolunu nasıl yaparım.

muhittin_kaplan


muhittin_kaplan

Yamak Keil Kullanmadım, Memoryi görüntülüyormu bilmiyorum.  ben CoIde ile yazıp StmUtil ile bakıyordum.

yamak

Hocam çok sağolun.Gerçekten çok makbule geçti.Allah razı olsun.
Aklıma şöyle bişey geldi eğer paylaştığınız kütüphaneyi kullanıp flash'a veri yazabilirsem deneyecem.
Mesela 100 byte lık const bir dizi tanımlayıp daha sonra bu 100 byte lık alana flash register ları aracığılıyla veri yazsam olur mu acaba?Bu alana veri yazarken kontrol etmeme de gerek kalmaz.

Burak B

Kullandığınız MCU' nun flash page(sektör) yapısına dikkat edin. Yoksa farkında olmadan program kodunuzun bir kısmını da silmeniz mümkün. Flash hafızaların çalışma mantığını iyi anlamak gerek.

Alıntı yapılan: yamak - 04 Mart 2014, 23:09:43
Hocam çok sağolun.Gerçekten çok makbule geçti.Allah razı olsun.
Aklıma şöyle bişey geldi eğer paylaştığınız kütüphaneyi kullanıp flash'a veri yazabilirsem deneyecem.
Mesela 100 byte lık const bir dizi tanımlayıp daha sonra bu 100 byte lık alana flash register ları aracığılıyla veri yazsam olur mu acaba?Bu alana veri yazarken kontrol etmeme de gerek kalmaz.

İşte bu 100 byte olayı problem. Çünkü flash hafızalar sektör olarak silinip yazılmalı. Yani minimum sektörünüz 2K ise o 2K alanı silip sonra veri yazabiliyorsunuz.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle