999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2012-06-01 02:54:46曹曉曼方火能刑開宇
電子科技 2012年1期
關(guān)鍵詞:嵌入式

林 森,曹曉曼,方火能,刑開宇

(西安電子科技大學(xué)電子工程學(xué)院,陜西西安 710071)

Blackfin(BF)系列DSP是ADI公司和Intel公司共同開發(fā)的DSP,采用了一種新型結(jié)構(gòu)MSA。BF系列中的BF537具有較塊的運(yùn)算速度和豐富的接口資源,長于控制和視頻圖像處理,且其帶有符合IEEE 802.3規(guī)范的以太網(wǎng)控制器,如果在BF537中移植帶有LwIP協(xié)議棧的VDK工程,并利用網(wǎng)絡(luò)芯片對537進(jìn)行擴(kuò)展,就能便捷地實(shí)現(xiàn)嵌入式系統(tǒng)與因特網(wǎng)的通信[1-2]。

由于低功耗、數(shù)據(jù)非易失、存儲速度快、存儲密度大等優(yōu)點(diǎn),Nand Flash在閃存行列中脫穎而出,常被用作大容量數(shù)據(jù)的存儲媒質(zhì)。隨著存儲系統(tǒng)容量和存取速度的不斷提升,構(gòu)建嵌入式文件系統(tǒng)來實(shí)現(xiàn)存儲系統(tǒng)中數(shù)據(jù)的管理。

1 VDK與嵌入式文件系統(tǒng)

1.1 VDK簡介

VDK(Visual DSP Kernel)是ADI公司針對Blackfin系列DSP處理器特別開發(fā)的“小而健壯”的輕量級內(nèi)核,特別適合編寫需要精確控制的代碼,是一個提供了豐富的API函數(shù)庫,同時支持輕量級IP協(xié)議棧(LwIP)的RTOS。

VDK功能全面,具有線程、信號量、事件與事件位、消息、關(guān)鍵域與禁止調(diào)度域等特征。內(nèi)核通過協(xié)同多任務(wù)和時間片輪轉(zhuǎn)的方式來管理和協(xié)調(diào)線程,這種方式稱為“調(diào)度”。VDK運(yùn)用程序可分為兩部分:線程域和中斷域。線程域中的調(diào)度稱為“軟件調(diào)度”,由內(nèi)核完成;中斷域中的調(diào)度稱為“硬件調(diào)度”,由中斷控制器完成。后者的優(yōu)先級高于前者,而設(shè)備驅(qū)動是兩者溝通的橋梁。

1.2 基于Nand Flash的嵌入式文件系統(tǒng)簡介

Flash文件系統(tǒng)主要有開源的和商業(yè)的兩類。開源的Flash文件系統(tǒng),有 JFFS、JFFS2、YAFS等。JFFS采用高效的日志文件系統(tǒng),具有掉電安全、臟塊回收、磨損均衡等特性,主要用于嵌入式Linux。Red Hat公司后來在JFFS基礎(chǔ)上進(jìn)行升級,發(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ū)動,利用冗余數(shù)據(jù)結(jié)構(gòu)保證可靠的數(shù)據(jù)操作,并能均勻使用Flash。后者使用事務(wù)記錄方案,運(yùn)用程序可通過FAL訪問文件系統(tǒng)。

2 嵌入式系統(tǒng)的硬件平臺

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

LAN8187用于對BF537的以太網(wǎng)控制器進(jìn)行擴(kuò)展,使其能夠通過以太網(wǎng)絡(luò)與上位機(jī)進(jìn)行通信。

圖1 嵌入式系統(tǒng)的硬件平臺

BF537外掛了兩片Nor Flash芯片作為其異步外存。程序 Nor Flash用于存儲運(yùn)行程序代碼,數(shù)據(jù)Flash主要用于存儲文件系統(tǒng)運(yùn)行所需的數(shù)據(jù),例如文件目錄表、地址映射表等。XC4VFX100用于處理數(shù)據(jù)流的速度、解析和轉(zhuǎn)發(fā)BF537的命令,配合BF537對存儲陣列進(jìn)行管理。

3 嵌入式文件系統(tǒng)設(shè)計(jì)

3.1 文件目錄表

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

表1 文件目錄表格式

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

有些數(shù)學(xué)教師也想在課堂上留出時間給學(xué)生思考,但對留白時機(jī)的把握還有所欠缺.對于簡單的問題,學(xué)生可能一下子就可以得到正確答案,留白時間過長不僅影響了課堂進(jìn)度,還會讓學(xué)生失去興趣;另一方面,對于難度過大的問題,教師不加點(diǎn)撥,便留了大量時間讓學(xué)生獨(dú)立作答,這對學(xué)生思維發(fā)展也是沒有益處的,甚至?xí)驌魧W(xué)生學(xué)習(xí)數(shù)學(xué)的信心[11].課堂時間是有限的,并不是每個問題都需要過多地思考,同時為了避免影響教學(xué)的連貫性及教學(xué)進(jìn)度,課堂留白應(yīng)當(dāng)注重時機(jī),在與教學(xué)重難點(diǎn)緊密聯(lián)系的“主問題”上可以多花時間,而一些不需要太多思考的細(xì)枝末節(jié)處則無需過多留白.

文件索引采用類似日志記錄的方式,每個文件索引作為文件目錄表的一個節(jié)點(diǎn)。文件系統(tǒng)進(jìn)行文件操作時,可以根據(jù)具體操作要求,實(shí)時搜索、增刪和標(biāo)記索引節(jié)點(diǎn),文件索引格式如表2所示。

表2 文件索引格式

文件存儲時,主線程遍歷文件目錄表的節(jié)點(diǎn)信息,計(jì)算出當(dāng)前存儲的起始塊地址,然后向存儲陣列發(fā)出開始存儲的命令,隨后將控制權(quán)交給中斷域。一旦接收到存儲陣列的地址請求信號,運(yùn)用程序進(jìn)入中斷,在中斷域中向文件存儲子線程發(fā)出信號,以發(fā)送當(dāng)前地址信息,如此反復(fù)。如果主線程接收到用戶停止存儲的命令,將立即關(guān)閉中斷,取得控制權(quán),接著將最新的文件信息更新到文件目錄表的最后位置,作為最新的節(jié)點(diǎn)。

文件下載時,主線程遍歷文件目錄表,找到相應(yīng)的文件索引信息,然后發(fā)送消息給文件下載子線程,開始對指定文件進(jìn)行下載。如果需要刪除某個文件,在遍歷目錄表找到指定文件的信息后,先發(fā)送地址將存儲陣列相應(yīng)數(shù)據(jù)塊的信息擦除,然后將該文件索引信息的“文件標(biāo)記”置為“刪除”標(biāo)記。

3.2 地址映射表

地址映射是文件系統(tǒng)的核心。文件系統(tǒng)將整個存儲陣列作為一個獨(dú)立的地址空間,統(tǒng)一編址。通過定義一個地址緩沖區(qū),將其相應(yīng)的偏移地址作為Nand Flash的物理地址,并根據(jù)壞塊信息對緩沖區(qū)相應(yīng)偏移地址的單元做壞塊或有效塊的標(biāo)記。文件系統(tǒng)在實(shí)際操作中,可“查詢”地址緩沖區(qū),如果地址緩沖區(qū)某偏移地址為壞塊標(biāo)記,則拋棄,繼續(xù)查詢下一個偏移地址的標(biāo)記,如為有效塊標(biāo)記,則將此偏移地址作為存儲陣列的有效物理塊地址。

為提高存儲效率和方便管理,地址緩沖區(qū)的內(nèi)容會被記錄在數(shù)據(jù)Nor Flash中,作為一個“地址映射表”。地址映射表體積不大,燒寫到Nor Flash時,可將燒寫代碼推入到VDK的“關(guān)鍵域”中,因?yàn)闊龑憰r間小于兩次中斷間隔,這樣既不會照成中斷延時,又能保證燒寫工作一次完成[5]。

硬件平臺上電后,系統(tǒng)啟動線程首先讀取Nor Flash中的地址映射表到地址緩沖區(qū),隨后基于地址緩沖區(qū)進(jìn)行文件管理;如需更新壞塊信息,首先更新地址緩沖區(qū),然后將地址緩沖區(qū)內(nèi)容記錄到Nor Flash中。故而名為“映射”,實(shí)質(zhì)是一種“標(biāo)記”的方法。地址映射機(jī)制如圖2所示。

圖2 地址映射表的設(shè)置與使用

3.3 壞塊回收

Nand Flash芯片在出廠時就存在隨機(jī)壞塊,同時隨著使用時間的推移,一些有效塊也會因?yàn)榫幊痰脑虺蔀樾碌膲膲K,故而存儲陣列在使用一段時間后,應(yīng)當(dāng)更新壞塊信息。考慮到陣列中文件的安全性和完整性,系統(tǒng)設(shè)置為存儲陣列為空時方能更新壞塊信息。

格式化整個陣列后,存儲陣列中的FPGA芯片依次讀取每個數(shù)據(jù)塊的第一頁數(shù)據(jù),如果發(fā)現(xiàn)非0xFF數(shù)據(jù)的個數(shù)超過設(shè)定閾值,就認(rèn)為此數(shù)據(jù)塊為壞塊。之所以設(shè)定閾值而不是一有非0xFF數(shù)據(jù)就視為壞塊,是為了克服數(shù)據(jù)讀取的不穩(wěn)定性。

BF537讀取存儲陣列傳送來最新壞塊信息后,按照圖2中地址映射表設(shè)置的辦法,首先更新地址映射緩沖區(qū),隨即將地址映射緩沖區(qū)的內(nèi)容實(shí)時更新到數(shù)據(jù)Nor Flash中,保持兩者的同步。

由于壞塊信息更新的時間可能較長,更新工作放在主線程中可能造成較大時延,影響主線程對用戶命令的響應(yīng),所以壞塊回收與標(biāo)記可放在子線程中。

3.4 磨損均衡

Nand Flash芯片的編程次數(shù)有限,如果對某個數(shù)據(jù)塊操作過于頻繁,將迅速縮短其使用壽命,最終成為壞塊,乃至影響整個芯片的使用。如果均衡地使用Flash芯片的每個數(shù)據(jù)塊,對其操作的概率在較長時間內(nèi)大體相當(dāng),這樣不僅能減少芯片壞塊的比例,也能延長存儲陣列的使用壽命。

開源和商業(yè)的文件系統(tǒng),都有較為完備的臟塊回收和磨損均衡的機(jī)制,但是其算法往往較復(fù)雜,同時需要將運(yùn)行信息實(shí)時更新到Flash芯片中。在存儲速率要求很高的情況下,復(fù)雜的機(jī)制對存儲速率將不可避免地造成影響。

文件系統(tǒng)關(guān)于磨損均衡的解決方案主要是順序存儲和陣列整理。文件存儲時,并不使用“鏈?zhǔn)酱鎯Α保畛湮募h除所留下的“空洞”,而采用“連續(xù)存儲”的方式,將最新的文件存儲到當(dāng)前所有文件的末尾。這樣不僅編程簡單,而且存儲陣列在一段時間后可能會被耗盡,此時如果刪除尾部的某些文件,那么下個的文件可以存儲在這些空余出來的位置;如果利用陣列整理功能將當(dāng)前文件“壓縮”為連續(xù)緊湊的文件序列,去除文件刪除時留下的空洞,這樣整理出來的空間也可以繼續(xù)用于下次存儲。

3.5 掉電保護(hù)

嵌入式系統(tǒng)硬件平臺的工作環(huán)境一般較為惡劣,電源模塊隨時會有停止供電的可能。故而掉電保護(hù)是嵌入式文件系統(tǒng)設(shè)計(jì)的重點(diǎn)和難點(diǎn)。

微軟的FAT文件系統(tǒng)的掉電保護(hù)主要針對FAT表,本文件系統(tǒng)也是基于這個理念。開始文件存儲時,子線程對發(fā)送的塊地址數(shù)目做一個計(jì)數(shù),當(dāng)計(jì)數(shù)量達(dá)到設(shè)定的閾值N后,將新文件的信息更新到文件目錄表緩沖區(qū)中,并立即將文件目錄表更新到Nor Flash中,兩個更新的操作不能被中斷,故而將這段代碼推入到關(guān)鍵域中。隨后將計(jì)數(shù)值清零,重新開始前一過程。如果在存儲過程中掉電,重新上電啟動后,開始新的存儲,系統(tǒng)會自動查詢存儲陣列最后一個文件的狀態(tài)標(biāo)記,如果標(biāo)記為暫存,則判定最后一個文件在存儲時遇到了掉電的情況,那么系統(tǒng)自動擦除該文件接下來N個數(shù)據(jù)塊的信息,然后最后一個文件開始新的存儲。

文件刪除操作是在刪除動作完成后才更新文件目錄表,如果在刪除過程中掉電,那么上電后,用戶可以對該文件重新刪除。文件的拷貝和剪切是在操作前更新文件目錄表,如果在操作過程中出現(xiàn)斷電,重新上電后,用戶可先刪除拷貝后的新的文件,去除殘塊,然后開始新的操作。

4 結(jié)束語

介紹的嵌入式文件系統(tǒng)已在項(xiàng)目中成功投入使用,當(dāng)然仍有許多方面需要改進(jìn)。例如文件目錄表如果較長,線性遍歷耗時也會相對較長;文件目錄表沒有備份,如果更新文件列表時存儲系統(tǒng)出現(xiàn)掉電,該如何應(yīng)對等。VDK是ADI公司為自己的集成開發(fā)環(huán)境量身打造的內(nèi)核,相對于Linux等開源系統(tǒng)來說,使用范圍可能較窄,但基于ADI的DSP使用自然有其得天獨(dú)厚的優(yōu)勢。

[1]Analog Devices Inc.bf537_hwr_Rev3.2.Analog Devices[DB/MT].USA:Analog Devices Inc,2008.

[2]Analog Devices Inc.50_vdk_man.3.1.Analog Devices[DB/MT].USA:Analog Devices Inc,2009.

[3]張小東,馮小平,羅越.基于ADSP-BF537的VDK/LwIP嵌入式實(shí)時操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)與應(yīng)用[J].電子元器件應(yīng)用,2010,12(1):6 -10.

[4]董永帥.Flash文件系統(tǒng)及存儲管理技術(shù)研究與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2008.

[5]蘇國立.基于VDK的文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國科學(xué)院,2009.

猜你喜歡
嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設(shè)計(jì)與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發(fā)平臺
基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
嵌入式單片機(jī)在電機(jī)控制系統(tǒng)中的應(yīng)用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 中文无码日韩精品| 最新痴汉在线无码AV| 亚洲高清日韩heyzo| 成人免费视频一区| 欧美亚洲日韩中文| 精品视频91| 国产污视频在线观看| 成人国产免费| 国产精品久久久久久久久久久久| 麻豆精品视频在线原创| 欧美人与牲动交a欧美精品| 国产97视频在线| 亚洲一区二区三区国产精品| 欧美va亚洲va香蕉在线| 999精品免费视频| 99尹人香蕉国产免费天天拍| 久久成人18免费| 亚洲爱婷婷色69堂| 嫩草影院在线观看精品视频| 免费xxxxx在线观看网站| 国产一区二区三区日韩精品| 亚洲AV无码不卡无码| 青青草原国产av福利网站| 老色鬼久久亚洲AV综合| 久久天天躁夜夜躁狠狠| 国产激情无码一区二区免费| 无码在线激情片| 久久综合九九亚洲一区| 国产视频欧美| 国产微拍一区| 91色老久久精品偷偷蜜臀| 在线视频精品一区| 亚洲国产看片基地久久1024| 亚洲AⅤ综合在线欧美一区| 色偷偷一区| 亚洲中文字幕在线精品一区| 国产精品成人一区二区| 亚洲av日韩av制服丝袜| 国产爽妇精品| 91精品专区国产盗摄| 天天操精品| 国产美女精品一区二区| 久久久受www免费人成| 999精品在线视频| 黄色网址免费在线| 毛片免费在线视频| 久久精品国产亚洲麻豆| 久久精品无码一区二区日韩免费| 999国产精品永久免费视频精品久久| 日韩 欧美 国产 精品 综合| 在线日韩日本国产亚洲| 91在线无码精品秘九色APP| 中文字幕永久视频| 欧美成在线视频| 最新加勒比隔壁人妻| 色婷婷亚洲综合五月| 亚洲色图综合在线| 四虎永久免费地址在线网站| 国产成人一区| 国产成人高清在线精品| 日韩第一页在线| 国产免费a级片| 激情乱人伦| 欧美精品三级在线| 97人人做人人爽香蕉精品| 国产欧美日韩精品综合在线| 亚洲中文字幕在线观看| 综合网天天| 欧美成人二区| 天堂在线www网亚洲| 久久婷婷综合色一区二区| 久久夜色精品国产嚕嚕亚洲av| 亚洲国产成人无码AV在线影院L| 美女无遮挡免费视频网站| www.亚洲一区二区三区| 国产本道久久一区二区三区| 免费国产黄线在线观看| 视频二区中文无码| 亚洲香蕉久久| 国产亚洲欧美日本一二三本道| 在线观看91精品国产剧情免费| 久久无码高潮喷水|