[elektro] E2PROM ill FLASH adattárolás érvényesség kezelése
Pataki István
pataki.istvan at freemail.hu
Thu Sep 4 19:56:00 CEST 2014
Na vájár csak:) ez azért bonyolultabb feladat, mint elsőre gondoltam. Ha
nem tudod RAM-ban tartani működés közben az egész adatbázist, akkor -
nevezd akárhogy - tkp. valamilyen fájlkezelő rendszert kell írnod a
FLASH-re, mert kénytelen vagy mindig a (szinte) legutolsó állapotot
tartani benne. Az írási ciklusok csökkentésére kell egy cache, ami
EEPROM vagy inkább RAM lehet. Ugyanakkor arra is figyelni kell, hogy nem
gyűlhet túl sok változtatás a cache-ben, mert nem lesz idő menteni. Jól
értettem a feladatot?
pi
----- Original Message -----
From: "hg12345" <hg12345 at freemail.hu>
To: <elektro at tesla.hu>
Sent: Thursday, September 04, 2014 6:55 PM
Subject: Re: [elektro]E2PROM ill FLASH adattárolás érvényesség kezelése
> Szia,
>
> Köszönöm ötletedet, segítségedet.
>
> Nem teljesen értem. (nincs javítás csak jelzés és a memóriát
> módosítom)
>
> Vagyis az alap értékekhez képest a módosításokat (cím+adat) ként
> tárolnám a RAM-ban
> dinamikusan változó területen amit a változtatások mennyiségétől
> függene.
> Így gondoltad?
>
> A CRC az egész tárolási területre számítanám vagy blokkokra osztva?
> A CRC a frissítéskor számítanám?
> A RAM-ban lévő adat validítását hogyan érzékelem, vagy azt elfogadom
> érvényesnek.
> Az adatok meddig maradnak a RAM területen (ez egy folyamatos üzemű
> készülék)?
>
>
> Több problémám van, a teljes adat halmaznak csak egy tört része fér el
> a uC RAM-jában.
> Alaphelyzetben a felhasználás csak olvasás az esetek 99.9%-ban, de nem
> kizárt olyan alkalmazás amikor több forrásból aszinkron módon
> módosítják a memóriát. Ez esetekben is úgy kéne korlátozni a memória
> felhasználást a tápáthidalási idő alatt minden változás az E2PROM-ban
> frissüljön, ez a legfontosabb kitétel.
> A cím + adat tárolás esetén a komoly probléma ilyen esetben a E2PROM
> kiolvasása és visszaírása Az átírás miatt ez dupla idő, ugyan ez
> elenyésző része az írási időnek (5ms) de ez is idő. Az táp elvételtől
> jelzéstől pl.: az idő 50ms lehet a legrosszabb esetben vagyis ha 10
> külön írási blokk címet tartalmaz a RAM akkor az utolsó adat kiírása
> már nem biztonságos, azt nem írtam, hogy néhány kbyte adatot
> mindenképpen ki kell írnom kikapcsoláskor és ez csökkenti a
> lehetőségeket.
>
> --------------
> Amit leírsz nagyon hasonlít E2PROM emulációra FLASH tárolón. Ezt már
> néhányszor végig számoltam, de nem olyan jók az adatok mint amit
> megadnak példa programok mellett, és lényegesen kisebb E2PROM emuláció
> mellett. A minta programokban a legtöbb helyen 256byte memóriát kezel
> a program. Ilyen esetekben is kitelik az endurance, hiszen az írás és
> törlés ugyan úgy egy fárasztásnak számít...
>
>
>
> "Pataki István" <pataki.istvan at freemail.hu> írta:
>>Talán az alapbejegyzés után csak a változásokat jegyezze föl sorban,
>>figyelve, hogy a változás bejegyzés a járulékos információkkal
>>(például:
>>hossz+adat(ok)+hibajelző) hogyan lehet a legrövidebb. Figyelni kell,
>>ha
>>körbeérné a memóriát, akkor újra kell írni az alapbejegyzést, de azt
>>is
>>folytatólagosan! Hátránya, hogy esetenként végig kell olvasni az egész
>>memóriát, közben a változásokkal korrigálni az alap bejegyzést
>>RAM-ban.
>>A memóriát - a javítások méretének statisztikájától függően - *2-*N
>>méretűre választanám, és CRC-t használnék.
>>pi
>>
>>
>>----- Original Message -----
>>From: "hg12345" <hg12345 at freemail.hu>
>>To: "elektro" <elektro at tesla.hu>
>>Sent: Thursday, September 04, 2014 4:53 PM
>>Subject: [elektro] E2PROM ill FLASH adattárolás érvényesség kezelése
>>
>>
>>> Hi,
>>>
>>> adott egy 64..128Kbyte méretű tárolási halmaz (eszköz konfiguráció,
>>> beállítások és programok).
>>> Az adatokat word mérettől kezdve akár 256byte méretig bármikor
>>> megváltoztathatják. Az adat halmaz nem ill. nehezen tárolható a
>>> belső
>>> RAM-ban, mert áramszünet esetén menteni kell, szerintem ez már nem
>>> fér
>>> bele az táp áthidalási időben.
>>> Az adatok mindig a E2PROM/FLASH memóriában tárolódnak, és csak a
>>> felhasználás idejére kerülnek periodikusan kiolvasásra, viszonylag
>>> gyakran 10...100ms (ez üzembiztosan működik, nem fogja meg a
>>> feldolgozást)
>>>
>>> Hogyan érdemes figyelni a sérülést:
>>> - 2 bites paritással (WORD-önként), (a tároláshoz elegendő 14 bit)
>>> - laponkénti LRC/CRC-vel (128WORD/256Byte) egy használható lap az
>>> ilyen méretű E2PROM-ban a serial FLASH-nek ez e legkisebb írható
>>> blokkja.
>>>
>>> Nem kell javítani az adatokat, csak a hibát detektálni kell.
>>> ez első esetben folytonos a memória, míg a második esetben egy
>>> kicsit
>>> munkásabb, mert minden 128. word nem használható.
>>>
>>> A LRC/CRC-t nem szeretném máshol tárolni, mert a tárolási blokk
>>> endurance határozza meg az írhatóságot, vagyis ilyen esetben a
>>> MAX/256
>>> lesz az endurance értéke, ami már elég kicsit, a FLASH esetén szinte
>>> semmi míg az E2PROM esetén egy FLASH értékre csökkenti. Más nem
>>> szeretnék FLASH-ra file tárolási rendszert telepíteni a programba,
>>> tudtommal ezekben nincs is ilyen fajta figyelés
>>>
>>> Van erre más jó megoldás?
>>>
>>> üdv
>>>
>>
>>-----------------------------------------
>> elektro[-flame|-etc]
>
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list