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