Stm32 flash memory sector silmeden üzerine yazma

Katılım
19 Ocak 2018
Mesajlar
57
Puanları
1
Merhaba ben flash memory i eeprom mantıgında kullanmak istiyorum fakat internette gördugum kadari ile bir adrese 2. kez yazmak için tüm sectoru temizlemek gerekiyor ben bunu istemiyorum çünkü aynı sectora çok sayıda veri kaydedecegim ve 1 tanesini degistirmek için hepsini silmek istemiyorum bunun baska yolu varmıdır yoksa mecburen harici eeprommu kullanmam gereklidir
 
Önce komple sektörü okuyup, ram bellekte gerekli değişiklikleri yapıp, sektörü komple yeniden yazmalısın.
 
Önce komple sektörü okuyup, ram bellekte gerekli değişiklikleri yapıp, sektörü komple yeniden yazmalısın.
ama 1 adresi degistirmek için okadar veriyi tekrar okuyup yazmak ne kadar mantıklı daha basit yöntemi varmı yoksa harici eeprom kullanmak mı mantıklı
 
Yok.

STM32 nin (genellikle bütün mcu lar içinde) flash hafızası sektör boyutu kadar silinmeden yazılamaz, tasarım bu şekilde.
Özel bir mcu versiyonu belki çıkarmıştır ST diyeceğim ama sanmam, bununla uğraşacağına mcu ya bir eeprom ekler.

Bazı yöntemler var,
genelde flash yazılı değilken hücreler 1 konumundadır,
Mesela 0xFFFF gibi,
sen bunu sektör silme işlemini yapmadan
önce 0xFFFE
sonra 0xFFF0
sonra 0xFF00
sonra 0xF000
olarak sırayla yazabilirsin (garanti değil deneyip doğrulanmalı)
yani hafızayı 1 yapamazsın ama 0 a indirebilirsin.

Daha güzel yöntem,
genelde flashta saklanacak veri 3, 5 byte birşeydir,
yeni bir data kaydetmek istediğinde
(veya saklamakta olduğun bir datayı değiştirmek istediğinde)
sıradaki yazılmamış haneye bu veriyi yazar ve geçerli data budur diye işaretlersin.
Bunu yazarak anlatmak zor
Eeprom emulation on flash
eeprom emülasyonu
gibi aramalar yapıp detaylı inceleyebilirsin.

Bu işleri halleden hazır kütüphaneler mevcut.
 

Forum istatistikleri

Konular
130,085
Mesajlar
932,941
Kullanıcılar
453,110
Son üye
Cagbah

Yeni konular

Geri
Üst