[En-Nut-Discussion] UROM file system and RAM vs Flash allocation on AT91SAM
Nathan Moore
nategoose at gmail.com
Thu Feb 25 19:55:34 CET 2010
On Thu, Feb 25, 2010 at 1:00 PM, Harald Kipp <harald.kipp at egnite.de> wrote:
> Nathan Moore wrote:
>
>> None of them allow you to skip the page erase if you are only clearing
>> some bits, such
>> as appending data to a partially used page?
>
> As far as I understood, NOR Flash generally allows to program each
> byte/word for exactly one time after an erasure cycle.
For some reason I've been thinking of "program" as "clear some bits" where
flash is concerned. I don't know if that is accurate. For instance, would
erasing a page, and then writing data that just happened to be all 1s mean
that you needed to erase that page again?
> There had been
> devices, which explicitly offered to reprogram a byte/word a limited
> number of times without erasure, to clear the remaining bits. I assume,
> that this is still possible with today's flash chips, but no longer
> mentioned in the datasheets.
The flash datasheets I have read seem to purposefully avoid talking about
this situation.
> Definitely the reliability suffers (reduced
> data retention time).
>
> The reason for not being able to modify single bits is, that the
> internal buffer is several bits long and the whole buffer must be used
> for a single programming cycle. On parallel NOR flash devices, the
> buffer is at least 1 byte. On serial flash chips it is 1 page.
So given the page:
0101-1010 1100-0011 1111-1111 1111-1111
if you were to want to store 0001-0000 in byte 2 (0 indexed, of
course) you could either write:
0101-1010 1100-0011 0001-0000 1111-1111
or
1111-1111 1111-1111 0001-0000 1111-1111
into that page without having erasure and it would probably work on
many devices, but
wouldn't be guaranteed?
Nathan
More information about the En-Nut-Discussion
mailing list