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