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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > VxWorks文件系統(tǒng)、Flash的TFFS設(shè)計與實(shí)現(xiàn)

          VxWorks文件系統(tǒng)、Flash的TFFS設(shè)計與實(shí)現(xiàn)

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

          0 引言

          的應(yīng)用中,基于flash的通常都采用DOS+FAT+FTL的結(jié)構(gòu)。

          一般情況下,磁盤大多是基于sector的系統(tǒng),磁盤按照物理上分為柱面、磁盤、扇區(qū),扇區(qū)是基于塊的文件系統(tǒng)操作的基本存儲單位,磁盤的容量都是根據(jù)這些數(shù)據(jù)計算出來的,每個扇區(qū)大小通常都是512bytes。

          文件系統(tǒng)中的DOSFS是MS-DOS兼容的文件系統(tǒng),可基于塊對物理介質(zhì)進(jìn)行操作。由于Fish的物理特性,對作基于塊(不同于的擦除塊)的操作必須由軟件作封裝,這就是所起的作用。

          1 文件系統(tǒng)的總體結(jié)構(gòu)

          VxWorks文件系統(tǒng)的總體結(jié)構(gòu)以及在整個文件系統(tǒng)的位置如圖l所示。



          Tomado下的文件系統(tǒng)是Tornado的一個可選組件,它可為種類繁多的設(shè)備提供一個統(tǒng)一的塊設(shè)備接口。在Tornado2.2版本中自帶的TFFS版本為2.0,在文件系統(tǒng)中,TFFS的功能相當(dāng)于磁盤驅(qū)動,通過TFFS可使上層的DOSFS或RTll文件系統(tǒng)像操作普通的標(biāo)準(zhǔn)磁盤一樣來操作Flash。

          2 TFFS文件系統(tǒng)的分層

          圖2所示為TFFS文件系統(tǒng)的分層圖。圖中的Core Layer內(nèi)核層可將其他層連接起來協(xié)同工作;翻譯層主要DOS和TFFS之間的交互、管理文件系統(tǒng)和Flash各個物理塊的關(guān)系,同時支持TFFS的各種功能,如磨損均衡、錯誤恢復(fù)等;MTD層執(zhí)行底層的程序驅(qū)動(map、read、write、erase等);socket層的名稱來源于可以插拔的socket存儲卡,主要提供與具體的硬件板相關(guān)的驅(qū)動。



          3 FTL層分析

          FTL是TFFS文件系統(tǒng)的核心,它是PCMCIS的一項標(biāo)準(zhǔn),意思是Flash Translation Laycr Specification,這種類型的文件系統(tǒng)是目前嵌入式系統(tǒng)中最流行的,很多公司都提供這種文件系統(tǒng)的相關(guān)解決方案。

          PTL為DOS BPB/FAT與Flash之間的中間層,F(xiàn)TL利用現(xiàn)成的基于塊的文件系統(tǒng)(例如DOSFS)來應(yīng)用層的操作,實(shí)質(zhì)上就是在Flash設(shè)備上模擬磁盤塊設(shè)備的實(shí)現(xiàn),為基于塊的文件系統(tǒng)提供統(tǒng)一的接口。FTL通過以下幾步來模擬磁盤驅(qū)動:首先是在Flash擦除塊之外定義小的讀寫塊(相當(dāng)于磁盤扇區(qū));其次是邏輯扇區(qū)(對塊文件系統(tǒng)如DOSFS呈現(xiàn)的地址)和物理地址(Flash的實(shí)際地址)之間的轉(zhuǎn)換;然后管理Flash,使得能在空閑的地方寫入數(shù)據(jù)。其核心就是將DOS上的扇區(qū)映射到Flash上去。

          本文引用地址:http://www.ex-cimer.com/article/151704.htm

          為了實(shí)現(xiàn)DOS層從邏輯上看扇區(qū)是連續(xù)的,可隨時對任意bit讀寫操作,F(xiàn)TL必須提供對Flash芯片的管理,包括向上層(DOS層)提供可以任意讀寫的操作接口,向下對Flash的擦除、寫入、讀取統(tǒng)一管理,同時還必須提供磨損均衡,以防止一個擦除塊提前損壞。

          3.1 FTL的啟動過程分析

          在我們調(diào)用函數(shù)tffsDevCreate創(chuàng)建TFFS文件系統(tǒng)時,會以參數(shù)FL_MOUNT_VOLUME調(diào)用函數(shù)flcall→mountvolume→flmount→mountFTL,函數(shù)mountFTL是FTL層的加載函數(shù)人口,處理過程首先是初始化FTL,然后就可按下列步驟進(jìn)行:

          (1)查找第一個合法的unit頭信息

          合法性的判斷依據(jù)是unit header頭上的標(biāo)志CISF..FTL100和部分頭部的flag信息,由于bsp已把FS的相關(guān)信息注冊到FTL的數(shù)據(jù)結(jié)構(gòu)中,所以,F(xiàn)TL層可以找到第一塊unit,并可以向后查,直到找到合法的unit為止。

          (2)檢驗(yàn)信息合法性

          將所有有用的信息都讀出到內(nèi)部數(shù)據(jù)結(jié)構(gòu)中后,即可檢驗(yàn)信息合法性。由于unit header中的Unit ID和擦除次數(shù)都相同,所以整個文件系統(tǒng)的共用信息都可以從首先找到的頭中讀出來。

          (3)給Mount每一個unit建立page表

          這是mount最重要的過程,對每個unit調(diào)用mountunit()函數(shù),并在mountunit()函數(shù)中首先判斷,如果是非法unit,則作為交換unit,然后對每個BAM選項進(jìn)行處理,并對垃圾BAM、空閑BAM進(jìn)行統(tǒng)計,如果是緩沖的BAM數(shù)據(jù)和交換page的VBM,則將此page的邏輯扇區(qū)信息記錄到內(nèi)存的page表中,以便后續(xù)映射訪問查詢使用,而對于非緩沖的BAM數(shù)據(jù),則不作處理,另外,對于交換page的VBM,則進(jìn)行記錄??紤]到上述過程,可見其系統(tǒng)中的page VBM和緩沖的數(shù)據(jù)BAM分布在各個unit的各個角落,需要將所有的VBM和緩沖數(shù)據(jù)BAM收集起來建立整個交換page表,這是FTL標(biāo)準(zhǔn)層時就要決定的。

          (4)檢驗(yàn)邏輯unit的完整性

          當(dāng)所有的unit都mount完成后,每個邏輯unit都應(yīng)存在,否則mount失敗。

          (5)判斷并關(guān)閉交換page

          如果系統(tǒng)中已存在交換page,則對系統(tǒng)中存在的交換page進(jìn)行關(guān)閉操作,以便后面檢查page的完整性。

          (6)檢查page的完整性

          系統(tǒng)中的page表必須是完整的,這個表中包含有緩沖的數(shù)據(jù)BAM映射信息和更重要的page映射信息,因此,缺少任何一個,都將導(dǎo)致DOS的虛擬扇區(qū)無法映射到相應(yīng)的邏輯扇區(qū)。

          從上述過程可見,整個mount過程是將文件系統(tǒng)信息讀入內(nèi)存數(shù)據(jù)結(jié)構(gòu)并檢驗(yàn)的過程,這個Mount PTL過程完成后,mountvolume ()函數(shù)即將隱蔽的0扇區(qū)和DOS的啟動扇區(qū)信息讀入內(nèi)存數(shù)據(jù)結(jié)構(gòu),這樣,DOS就可以訪問FTL底層扇區(qū)了。

          3.2 TFFS的塊映射

          圖3中,F(xiàn)TL層將DOS上連續(xù)的扇區(qū)映射到Flash上某個R/W block塊中,同時在某個位置記錄一個映射表(稱為MAP表),該表中記錄了DOS的扇區(qū)映射到Flash中的哪個block,當(dāng)DOS要進(jìn)行讀操作時,F(xiàn)TL首先查詢這個MAP,以獲得映射信息,然后讀取相應(yīng)的block信息并返回給DOS,從而實(shí)現(xiàn)讀映射。當(dāng)DOS需要寫入操作時,可能存在將bit0修改為1的情況,于是FTL層將申請一個新的block塊,并將新信息寫入,然后修改map信息,記錄這個DOS扇區(qū)已經(jīng)重新映射了,從而實(shí)現(xiàn)寫映射。所以,從邏輯上看,F(xiàn)TL層就實(shí)現(xiàn)了DOS扇區(qū)的映射和FLASH的寫入管理。


          上一頁 1 2 下一頁

          評論


          相關(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); })();