文件系統(tǒng)在EEPROM中的應(yīng)用
3.2 在塊設(shè)備驅(qū)動(dòng)中訪問EEPROM
為了訪問EEPROM,就需要將對EEPROM的操作與塊設(shè)備驅(qū)動(dòng)關(guān)聯(lián)起來。首先是在塊設(shè)備驅(qū)動(dòng)初始化代碼中調(diào)用at91_twi_init對EEPROM進(jìn)行初始化,然后在塊設(shè)備傳輸函數(shù)block_transfer中調(diào)用AT91_TWI_Read和AT91_TWI_Write進(jìn)行讀寫操作,這樣就使得塊設(shè)備驅(qū)動(dòng)和EEPROM關(guān)聯(lián)起來了。
為了提高效率,在對EEPROM寫操作時(shí)采用頁寫模式。這里要注意的是,需要對寫入的數(shù)據(jù)進(jìn)行分割,因?yàn)锳T24C512 提供的是128字節(jié)頁寫功能,如果多于128字節(jié),需分成128字節(jié)的倍數(shù)。同時(shí)注意,在一次寫結(jié)束時(shí),應(yīng)等待1個(gè)寫周期時(shí)間,再進(jìn)行其他的操作;在進(jìn)行讀操作時(shí),為了提高效率,應(yīng)采用連續(xù)多字節(jié)讀方式。
為了按文件方式存取EEPROM,在塊設(shè)備之上建立文件系統(tǒng)是必要的。由于AT24C512只有64 KB的容量,建立文件系統(tǒng)時(shí),應(yīng)該選擇本身占用空間少的文件系統(tǒng)。當(dāng)然這要根據(jù)具體需求來作出決定。
下面以msdos、minix、ext2文件系統(tǒng)為例作個(gè)比較。首先分別使用mkdos、mkfs.minix、mke2fs 對塊設(shè)備格式化,并掛載到某個(gè)目錄下。在未寫入任何文件數(shù)據(jù)的情況下,其結(jié)果如表1所列。
表1 文件系統(tǒng)對比
AT24C512 EEPROM只有64 KB容量,相比磁盤等大容量的存儲設(shè)備,除穩(wěn)定性外,最主要考慮的是有效空間利用率。從表1中可以看出,在這3種文件系統(tǒng)中,msdos文件系統(tǒng)的空間利用率要高一些,minix文件系統(tǒng)次之,ext2文件系統(tǒng)最低。但是msdos文件系統(tǒng)的缺點(diǎn)是只支持8.3格式的文件名,而minix文件系統(tǒng)支持的文件名最多為14個(gè)字符,ext2文件系統(tǒng)支持的文件名長度則高達(dá)255個(gè)字符。當(dāng)然,實(shí)際采用何種文件系統(tǒng)應(yīng)根據(jù)具體要求來作出選擇。
5 結(jié)論
由于AT24C512這類串行EEPROM本身固有的特性,在寫入和讀取文件操作時(shí),其響應(yīng)速度要低于NOR Flash、NAND Flash等存儲設(shè)備。盡管如此,EEPROM也有其優(yōu)勢,目前仍然大量應(yīng)用于嵌入式系統(tǒng)中。在EEPROM上建立文件系統(tǒng),給存取帶來了極大的便利,也大大地簡化了應(yīng)用程序的編寫。
評論