<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 文件系統(tǒng)在EEPROM中的應(yīng)用

          文件系統(tǒng)在EEPROM中的應(yīng)用

          作者: 時(shí)間:2010-05-19 來源:網(wǎng)絡(luò) 收藏

          3.2 在塊設(shè)備驅(qū)動(dòng)中訪問

            為了訪問,就需要將對(duì)的操作與塊設(shè)備驅(qū)動(dòng)關(guān)聯(lián)起來。首先是在塊設(shè)備驅(qū)動(dòng)初始化代碼中調(diào)用at91_twi_init對(duì)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)起來了。

            為了提高效率,在對(duì)EEPROM寫操作時(shí)采用頁(yè)寫模式。這里要注意的是,需要對(duì)寫入的數(shù)據(jù)進(jìn)行分割,因?yàn)锳T24C512 提供的是128字節(jié)頁(yè)寫功能,如果多于128字節(jié),需分成128字節(jié)的倍數(shù)。同時(shí)注意,在一次寫結(jié)束時(shí),應(yīng)等待1個(gè)寫周期時(shí)間,再進(jìn)行其他的操作;在進(jìn)行讀操作時(shí),為了提高效率,應(yīng)采用連續(xù)多字節(jié)讀方式。

          4 建立

            為了按方式存取EEPROM,在塊設(shè)備之上建立是必要的。由于AT24C512只有64 KB的容量,建立文件時(shí),應(yīng)該選擇本身占用空間少的文件系統(tǒng)。當(dāng)然這要根據(jù)具體需求來作出決定。

            下面以msdos、minix、ext2文件系統(tǒng)為例作個(gè)比較。首先分別使用mkdos、mkfs.minix、mke2fs 對(duì)塊設(shè)備格式化,并掛載到某個(gè)目錄下。在未寫入任何文件數(shù)據(jù)的情況下,其結(jié)果如表1所列。

          表1 文件系統(tǒng)對(duì)比
          按此在新窗口瀏覽圖片

            AT24C512 EEPROM只有64 KB容量,相比磁盤等大容量的存儲(chǔ)設(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)支持的文件名長(zhǎng)度則高達(dá)255個(gè)字符。當(dāng)然,實(shí)際采用何種文件系統(tǒng)應(yīng)根據(jù)具體要求來作出選擇。

          5 結(jié)論

            由于AT24C512這類串行EEPROM本身固有的特性,在寫入和讀取文件操作時(shí),其響應(yīng)速度要低于NOR Flash、NAND Flash等存儲(chǔ)設(shè)備。盡管如此,EEPROM也有其優(yōu)勢(shì),目前仍然大量于嵌入式系統(tǒng)中。在EEPROM上建立文件系統(tǒng),給存取帶來了極大的便利,也大大地簡(jiǎn)化了程序的編寫。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();