|
【有錢】(用N個扇區(qū)做這件事)的做法:
起始:清擦N扇區(qū)。
1、用3個字節(jié)存數(shù)據(jù),首字節(jié)是標(biāo)記S,S<>FFH就行,就自定。另兩個,按你的想法去做。
2、寫入時:從前向后查標(biāo)記S,從第一個為FF的單元格起(注意查找步進(jìn)=3個字節(jié)),寫入S標(biāo)記和數(shù)據(jù)。
如果沒有查到FF(扇區(qū)已寫滿了),則清擦N扇區(qū),從0單元起,寫入S標(biāo)記和數(shù)據(jù)。
3、讀取時:從前向后查標(biāo)記,從第一個為FF的單元格起,向前退兩個單元,就是你需要讀取的數(shù)據(jù)。
如果沒有查到FF(扇區(qū)恰好寫滿了),則是最末是數(shù)據(jù)(注意:步進(jìn)=3個字節(jié))。
為何要標(biāo)記S呢?因?yàn)椴脸笕荈FH,如果你的數(shù)據(jù)也是FFH,如何區(qū)分呢?
當(dāng)然,你有區(qū)分的方案,也可以按自己的想法來。例如,數(shù)據(jù)不會出現(xiàn)FFH,則標(biāo)記可以省略不要。
【沒有錢】的做法:
寫入:
1、將本扇區(qū)內(nèi)所有的數(shù)據(jù)復(fù)制到同樣大小的RAM中。
2、在RAM的對應(yīng)位置上寫入數(shù)據(jù)。
3、擦除本扇區(qū)
4、將RAM中數(shù)據(jù),復(fù)制到本扇區(qū)中。
在3、4、過程中不能掉電,否則數(shù)據(jù)被毀,無法恢復(fù)。當(dāng)然有辦法防止,這是另一個題目,不在此啰嗦。
讀�。郝�。
|
|