新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VDK的嵌入式文件系統(tǒng)實(shí)現(xiàn)

基于VDK的嵌入式文件系統(tǒng)實(shí)現(xiàn)

作者: 時(shí)間:2012-02-24 來源:網(wǎng)絡(luò) 收藏

摘要 針對(duì)實(shí)驗(yàn)室開發(fā)的Nand Flash的高速、大容量存儲(chǔ),闡述了利用BF537及其集成開發(fā)環(huán)境Visual DSP++的內(nèi)核,的具體方案。同時(shí)簡(jiǎn)要介紹了通過虛擬地址映射和壞塊標(biāo)記的方法,來管理Nand Flash芯片中的壞塊,以此的地址傳輸。
關(guān)鍵詞 ;BF537;系統(tǒng);Nand Flash

Blackfin(BF)系列DSP是ADI公司和Intel公司共同開發(fā)的DSP,采用了一種新型結(jié)構(gòu)MSA。BF系列中的BF537具有較塊的運(yùn)算速度和豐富的接口資源,長(zhǎng)于控制和視頻圖像處理,且其帶有符合IEEE 802.3規(guī)范的以太網(wǎng)控制器,如果在BF537中移植帶有LwIP協(xié)議棧的工程,并利用網(wǎng)絡(luò)芯片對(duì)537進(jìn)行擴(kuò)展,就能便捷地系統(tǒng)與因特網(wǎng)的通信。
由于低功耗、數(shù)據(jù)非易失、存儲(chǔ)速度快、存儲(chǔ)密度大等優(yōu)點(diǎn),Nand Flash在閃存行列中脫穎而出,常被用作大容量數(shù)據(jù)的存儲(chǔ)媒質(zhì)。隨著存儲(chǔ)系統(tǒng)容量和存取速度的不斷提升,構(gòu)建嵌入式文件系統(tǒng)來實(shí)現(xiàn)存儲(chǔ)系統(tǒng)中數(shù)據(jù)的管理。

1 VDK與嵌入式文件系統(tǒng)
1.1 VDK簡(jiǎn)介
VDK(Visual DSP Kernel)是ADI公司針對(duì)Blackfin系列DSP處理器特別開發(fā)的“小而健壯”的輕量級(jí)內(nèi)核,特別適合編寫需要精確控制的代碼,是一個(gè)提供了豐富的API函數(shù)庫(kù),同時(shí)支持輕量級(jí)IP協(xié)議棧(LwIP)的RTOS。
VDK功能全面,具有線程、信號(hào)量、事件與事件位、消息、關(guān)鍵域與禁止調(diào)度域等特征。內(nèi)核通過協(xié)同多任務(wù)和時(shí)間片輪轉(zhuǎn)的方式來管理和協(xié)調(diào)線程,這種方式稱為“調(diào)度”。VDK運(yùn)用程序可分為兩部分:線程域和中斷域。線程域中的調(diào)度稱為“軟件調(diào)度”,由內(nèi)核完成;中斷域中的調(diào)度稱為“硬件調(diào)度”,由中斷控制器完成。后者的優(yōu)先級(jí)高于前者,而設(shè)備驅(qū)動(dòng)是兩者溝通的橋梁。
然而VDK只是一個(gè)“裸核”,不提供文件系統(tǒng)的支持,如果需要VDK實(shí)現(xiàn)文件系統(tǒng),用戶必須自己編寫各種接口函數(shù)的代碼。
1.2 Nand Flash的嵌入式文件系統(tǒng)簡(jiǎn)介
Flash文件系統(tǒng)主要有開源的和商業(yè)的兩類。開源的Flash文件系統(tǒng),有JFFS、JFFS2、YAFS等。JFFS采用高效的日志文件系統(tǒng),具有掉電安全、臟塊回收、磨損均衡等特性,主要用于嵌入式Linux。Red Hat公司后來在JFFS基礎(chǔ)上進(jìn)行升級(jí),發(fā)展出JSSF2。JSSF2采用哈希表的日志節(jié)點(diǎn)結(jié)構(gòu),加快了節(jié)點(diǎn)的操作速度。YAFFS也是基于日志結(jié)構(gòu)的文件系統(tǒng),相比JFFS,YAFFS減少了一些功能,但降低了內(nèi)存占用率,提高了訪問速度。
商業(yè)Flash文件系統(tǒng)主要有TrueFFS和TransactionFFS。前者用于仿真硬盤驅(qū)動(dòng),利用冗余數(shù)據(jù)結(jié)構(gòu)保證可靠的數(shù)據(jù)操作,并能均勻使用Flash。后者使用事務(wù)記錄方案,運(yùn)用程序可通過FAL訪問文件系統(tǒng)。

2 嵌入式系統(tǒng)的硬件平臺(tái)
基于BF537的嵌入式系統(tǒng)硬件平臺(tái)的框圖如圖1所示。

本文引用地址:http://www.butianyuan.cn/article/149570.htm

a.jpg


LAN8187用于對(duì)BF537的以太網(wǎng)控制器進(jìn)行擴(kuò)展,使其能夠通過以太網(wǎng)絡(luò)與上位機(jī)進(jìn)行通信。
BF537外掛了兩片Nor Flash芯片作為其異步外存。程序Nor Flash用于存儲(chǔ)運(yùn)行程序代碼,數(shù)據(jù)Flash主要用于存儲(chǔ)文件系統(tǒng)運(yùn)行所需的數(shù)據(jù),例如文件目錄表、地址映射表等。XC4VFX100用于處理數(shù)據(jù)流的速度、解析和轉(zhuǎn)發(fā)BF537的命令,配合BF537對(duì)存儲(chǔ)陣列進(jìn)行管理。

3 嵌入式文件系統(tǒng)設(shè)計(jì)
3.1 文件目錄表
考慮到存儲(chǔ)系統(tǒng)的存儲(chǔ)速度較快,且文件數(shù)目較少的特點(diǎn),文件目錄表采用線性表的方式。格式如表1所示,其中的“更新次數(shù)”用于記錄存放文件目錄表數(shù)據(jù)Nor Flash的編程次數(shù)。

b.jpg


文件系統(tǒng)采用Nor Flash中的一個(gè)64 kB的數(shù)據(jù)塊實(shí)時(shí)記錄文件目錄表。出于磨損均衡的考慮,如果數(shù)據(jù)塊的編程次數(shù)超過規(guī)定的閾值,文件系統(tǒng)將自動(dòng)跳到Nor Flash的下一個(gè)64 kB的數(shù)據(jù)塊記錄文件目錄表。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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

評(píng)論


相關(guān)推薦

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

關(guān)閉