<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VDK的嵌入式文件系統實(shí)現

基于VDK的嵌入式文件系統實(shí)現

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

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

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

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

2 嵌入式系統的硬件平臺
基于BF537的嵌入式系統硬件平臺的框圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/149570.htm

a.jpg


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

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

b.jpg


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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>