STM32'de Hata Loglayan Program

Başlatan isoment01, 15 Nisan 2020, 12:31:23

isoment01

Arkadaşlar sürekli en güncel hatayı gösterecek ve oluşan hataları bir geçmişe atacak program yazdım. STM32'de hafızaya yazma işlemi yaparken adrese yazabiliyoruz fakat silme işlemi yaparken adresleri silemiyoruz, 32 bit hücrelerden oluşan sektörleri silmeye erişimimiz var. Şimdi bu 128kb'lik bir sektör ve ben buraya bişey yazmadan önce tüm sektörü silersem önceki kaydettiğim veriler siliniyor. Geçmiş kayboluyor var mıdır bunun bir çözümü.

z

Flash hazfizasi sektorlere bolunmus. Bir sektoru sildiginde diger sektorler silinmez.

Sadece bazi sektorler atiyorum 1K iken bazilari 4K olabiliyor. Sektor dagilimini ve sektor boyutlari icin cipinin dokumanina bakmalisin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

isoment01

Alıntı yapılan: z - 15 Nisan 2020, 12:41:47Flash hazfizasi sektorlere bolunmus. Bir sektoru sildiginde diger sektorler silinmez.

Sadece bazi sektorler atiyorum 1K iken bazilari 4K olabiliyor. Sektor dagilimini ve sektor boyutlari icin cipinin dokumanina bakmalisin.
Hocam sektordeki bir adress bossa icinde ff oluyor, dolu olan bir hucreye overwrite yaparsak AND islemine tabi tutuluyor. Bir sektorun tumunu traverse ederek doldurabiliyoruz. Bir hucreye yazmadan once tum sektoru silmeye gerek yoi. Deneme yanilmayla buldum bu sonuclari.

e-zeki

anladığım kadarıyla f4 serisi bir işlemci kullanıyorsun. onlarda sektör büyüklüğü rom da aşağı indikçe büyüyor. Eğer sadece belli sayıda hata geçmişi tutuyorsan (örneğin 100x4byte) o zaman bir buffer tanımlayıp:
flashdan oku buffera doldur >> buffer'da değiştir. >> flash sil >> buffero flasha yaz.
Şeklinde yapabilirsin. başka bir yolu olduğunu da zannetmiyorum çünkü senin de dediğin gibi AND operatör olduğu için 0 olan bitler bir daha 1 olamaz. flashdan birşey silmek istiyorsan zaten tüm sekötrü silmek zorundasın. ama eğer codesize'ın çok yüksek değilse 128'in üzerinde 2-4-16kb lık sektörler olması lazım onlardan birini kullanmanı tavsiye ederim çünkü flash silme 128kb sektörde baya zaman alıyor.

muhittin_kaplan

eeprom emulasyon örneği var. O sorununuzu çözecektir.

PhD

Alıntı yapılan: muhittin_kaplan - 08 Haziran 2020, 19:44:54eeprom emulasyon örneği var. O sorununuzu çözecektir.
Nereden bulabiliriz hocam bu örneği, yardımcı olabilirseniz sevinirim.
...hiç...

e-zeki

Alıntı yapılan: PhD - 09 Haziran 2020, 18:33:54Nereden bulabiliriz hocam bu örneği, yardımcı olabilirseniz sevinirim.

CubeMX repository'de  bazı modeller için applications klasörlerinde eeprom diye örnek var oradan inceleyebilirsiniz. Ör: Nucleo 103RB