[elektro] Mikroproci EEPROM kérdés
Móczik Gábor
pm_levlista at progzmaster.hu
Tue Mar 22 01:51:14 CET 2016
2016.03.19. 8:41 keltezéssel, Karoly Kovacs írta:
> 1. csinált-e már valaki közületek hasonlót? (Úgy értem, hogy írt-e
> valamelyikőtök olyan sokat EEPROM-ba, hogy meg kellett oldania ezt az
> életciklus problémát?)
> 2. jó-e az, ha azt csinálom, hogy az adatok előtt egy (írási) számlálót
> is kiírok, s ha ez a számláló mondjuk eléri a 100 ezres határt, akkor az
> egészet (számláló + adatok) arrébb költöztetem az EEPROM még szűz
> területére? (És így tovább, 100 ezer írásonként.)
Azt azért érdemes kiszámolni, hogy mennyi az átlagos adatsebesség és
mennyi a tárhelyed, mert kettő hányadosa szorozva az endurance értékkel
az elméleti max. MTBF amit el tudsz érni bármilyen algoritmussal (ha
nincs cache). Ha ez még mindig kevés, akkor nagyobb külső tárhely kell.
Én nem csinálnám úgy ahogy írtad, hanem inkább úgy, hogy mindig más
területre kerüljön az adat, és valahogy megkeresed melyik a friss.
Ez a valahogy többféleképpen lehetséges:
- számlálót írsz ki a blokkok elé, amit célszerűen nagyobb számoktól
indítasz és csökkentesz. Amíg fut a szoftver, addig nyilvántarthatod,
hogy hová kell írni a következő blokkot. Bekapcsolás után végigolvasod
az egész tárhelyet, és megkeresed melyik a legkisebb, az a legfrissebb,
ha mindig a legrégebbit törlöd, akkor az valószínűleg az egy blokkal
odébbi, de kikeresheted a max értéket is.
- timestamp. Ha az adatblokk amúgy is tartalmazza, és a monotonitás
garantálható, akkor ez alapján a legegyszerűbb.
Ha esetleg megoldod, hogy legyen egy korai power-loss jeled, amikor még
van CPU táp, akkor RAM-ban cache-elhetsz és mondjuk kimented T indőnként
biztonsági okból + powerloss esetén.
De attól is függ, milyen az adat.
Ha pl. csak egy számláló (üzemidő, darabszám, stb.), és csak
statisztikai/diagnosztikai célból gyűjtöd, ezért megengedhető, hogy a
legfrissebb néha elvész, akkor számolhatsz a RAM-ban, és csak minden
10-20 vagy akárhanyadikat írod ki.
Ha multibyte adatot írsz ki, tegyél bele valamit, amivel érvényesítheted
a blokkot, CRC, ECC, stb... Ha nincs powerloss jel, és írás közben
üzemszerűen elmehet a táp, akkor ez szinte kötelező.
More information about the Elektro
mailing list