国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

在ucos—II嵌入式操作系統(tǒng)平臺(tái)上實(shí)現(xiàn)exfat文件系統(tǒng)

2016-01-14 16:49楊利
科技資訊 2015年5期

楊利

摘 要:Exfat文件系統(tǒng)是大容量移動(dòng)存儲(chǔ)設(shè)備文件系統(tǒng)的新寵,由于其操作簡(jiǎn)便、支持超大文件等突出特點(diǎn),應(yīng)用越來越廣泛。該文在研究exfat文件系統(tǒng)結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,成功將exfat文件系統(tǒng)移植到基于ucos-II嵌入式操作系統(tǒng)的開發(fā)平臺(tái)上,使得運(yùn)行該操作系統(tǒng)的電子產(chǎn)品可以方便地實(shí)現(xiàn)音視頻播放等功能,極大的增加了產(chǎn)品的多樣性,因此該研究成果具有非常好的現(xiàn)實(shí)意義。經(jīng)過測(cè)試證明,移植后的exfat文件系統(tǒng)在功能和效率上都達(dá)到了預(yù)期的目標(biāo)。

關(guān)鍵詞:ucos-II exfat 文件系統(tǒng)

中圖分類號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)02(b)-0011-02

Exfat文件是微軟繼FAT、NTFS桌面文件系統(tǒng)后推出的全新文件系統(tǒng),由于其特殊的結(jié)構(gòu),解決了FAT文件系統(tǒng)不能支持大文件、NTFS文件系統(tǒng)對(duì)硬盤讀寫頻繁等問題,是目前大容量移動(dòng)存儲(chǔ)設(shè)備文件系統(tǒng)的首選。ucos-II嵌入式文件系統(tǒng)由于其開放性、免費(fèi)性及精簡(jiǎn)性等特點(diǎn),成為許多中小企業(yè)作為電子產(chǎn)品研發(fā)平臺(tái)的選擇。隨著電子技術(shù)的發(fā)展,幾乎所有的電子產(chǎn)品都要求具備多媒體播放等功能,而這些功能都需要有文件系統(tǒng)的支持,因此在ucos-II嵌入式操作系統(tǒng)平臺(tái)下探索如何實(shí)現(xiàn)exfat文件系統(tǒng),具有很好的現(xiàn)實(shí)意義。

1 Ucos-II內(nèi)核簡(jiǎn)介

Ucos-II是基于優(yōu)先級(jí)搶占的實(shí)時(shí)嵌入式操作系統(tǒng),具有內(nèi)核源碼完全開放且共享資源豐富的特點(diǎn)。ucos-II內(nèi)核由核心、任務(wù)處理、時(shí)間處理、任務(wù)同步與通信等4個(gè)部分,總共有5 500行代碼。其中oscore.c源碼是內(nèi)核的處理核心,完成初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時(shí)鐘節(jié)拍、任務(wù)調(diào)度、事件處理等工作。ostask.c是任務(wù)處理部分的源碼,包括任務(wù)的建立、刪除、掛起、恢復(fù)等函數(shù)。任務(wù)處理部分中的內(nèi)容都是與任務(wù)的操作密切相關(guān)的,ostime.c是時(shí)鐘處理源碼,任務(wù)延時(shí)等操作是在這里完成的。ucos-II操作系統(tǒng)啟動(dòng)和多任務(wù)的調(diào)度關(guān)鍵在于時(shí)鐘節(jié)拍處理函數(shù),實(shí)際上是一個(gè)中斷服務(wù)程序,是嵌入式系統(tǒng)定時(shí)器定時(shí)時(shí)間到指向的中斷服務(wù)程序。任務(wù)間的通訊與同步包括事件機(jī)制、消息隊(duì)列、信號(hào)量集,分別用于兩個(gè)任務(wù)之間、一個(gè)任務(wù)與多個(gè)任務(wù)之間、多個(gè)任務(wù)與多個(gè)任務(wù)之間的通訊。

2 Exfat文件系統(tǒng)簡(jiǎn)介

Exfat是為大容量移動(dòng)存儲(chǔ)設(shè)備而生的文件系統(tǒng),提高了單個(gè)文件的大小,使得單個(gè)文件最大為32EB,從而加強(qiáng)了存儲(chǔ)設(shè)備和電腦直接的互操作性。并且exfat保留了fat文件系統(tǒng)的操作簡(jiǎn)便性,克服了NTFS的損害硬件的缺點(diǎn),使得其成為移動(dòng)存儲(chǔ)設(shè)備上文件系統(tǒng)的新寵。

Exfat文件系統(tǒng)的結(jié)構(gòu)見圖1。

其中VBR是啟動(dòng)扇區(qū),指卷的物理0扇區(qū),它記錄了該卷的相關(guān)信息,其具體結(jié)構(gòu)可以參照參考文獻(xiàn)[3],該文就不重復(fù)敘述。

上電啟動(dòng)后操作系統(tǒng)會(huì)最先讀取VBR啟動(dòng)扇區(qū)的內(nèi)容,通過分析VBR的內(nèi)容,可以很清楚地定位FAT表、根目錄、數(shù)據(jù)區(qū)的位置,從而也很容易查找到任一指定名的文件。

通常一簇為32個(gè)扇區(qū),一個(gè)扇區(qū)為512字節(jié)。簇0除了存放VBR外,其余均為保留扇區(qū);簇1存放Fat表;簇2、簇3分別存放簇位圖文件和大寫字符文件,其中簇位圖表征簇的使用情況,為1表示該簇占用,為0表示該簇空閑;簇4為根目錄使用,所以數(shù)據(jù)一般從簇5開始。

FAT32文件系統(tǒng)采用32字節(jié)來記錄目錄項(xiàng),在exFAT中,目錄項(xiàng)大小仍然是32字節(jié),不過結(jié)構(gòu)上已經(jīng)做出了重大的改變,目錄項(xiàng)的第一個(gè)字節(jié)表示的是該目錄項(xiàng)的類型,不同的目錄類型有不同的目錄結(jié)構(gòu),常見的目錄項(xiàng)有81H、85H、C0、C1、C2等,目錄項(xiàng)的結(jié)構(gòu)請(qǐng)參照參考文獻(xiàn)3和4。

一個(gè)目錄,可以由多個(gè)不同的目錄類型組成,因?yàn)椴煌哪夸涱愋陀胁煌哪夸浗Y(jié)構(gòu),這樣雖然一個(gè)目錄項(xiàng)只有32個(gè)字節(jié)表示,但其代表的信息量遠(yuǎn)比FAT32目錄項(xiàng)的結(jié)構(gòu)豐富得多。

3 在ucos-II內(nèi)核中實(shí)現(xiàn)

3.1 實(shí)現(xiàn)思路

在ucos-II內(nèi)核中實(shí)現(xiàn)exfat文件系統(tǒng)的前提是先搭建文件系統(tǒng)的框架,這是該課題的準(zhǔn)備工作,不在此敘述,可參照參考文獻(xiàn)1和2。

根據(jù)exfat結(jié)構(gòu)的分析,要實(shí)現(xiàn)exfat文件系統(tǒng),核心工作就是先創(chuàng)建相關(guān)的數(shù)據(jù)結(jié)構(gòu),如VBR、目錄項(xiàng)、目錄類型等;然后根據(jù)對(duì)文件操作的需求,編寫相關(guān)的操作函數(shù),如打開、讀寫、關(guān)閉文件等,命名以exfat_打頭。如打開文件函數(shù)命名為exfat_openfile;最后將這些exfat文件操作函數(shù)和ucos-II的文件系統(tǒng)關(guān)聯(lián)起來,例如當(dāng)操作系統(tǒng)上層調(diào)用openfile函數(shù)時(shí),如果此時(shí)存儲(chǔ)設(shè)備的文件系統(tǒng)格式為exfat,那么openfile函數(shù),最終會(huì)調(diào)用下層的exfat_openfile函數(shù)來完成具體的操作。

3.2 重要數(shù)據(jù)結(jié)構(gòu)及函數(shù)

3.2.1 0扇區(qū)VBR

struct exfat_super_block {

__u8 jmp_boot[3]; /* boot strap short or near jump */

__u8 oem_id[8]; /* oem-id */

__u8 unused0;

__u32 unused1[13];

__le64 start_sector; /* start sector of partition */

__le64 nr_sectors; /* number of sectors of partition */

/*0x50*/__le32 fat_blocknr; /* start blocknr of FAT */

__le32 fat_block_counts; /* number of FAT blocks */

......

}

3.2.2 函數(shù)列表

unsigned int fsapitbl[]={

(unsigned int)FS_FOpen,

(unsigned int)FS_FClose,

(unsigned int)FS_FRead,

(unsigned int)FS_FWrite,

(unsigned int)FS_GetLength,

(unsigned int)FS_GetTime,

(unsigned int)FS_ConvertName,

......

};

3.3 測(cè)試與驗(yàn)證

該課題采用黑盒測(cè)試的方法來驗(yàn)證文件系統(tǒng)的功能,如要驗(yàn)證FS_CopyDir函數(shù)(拷貝目錄)的正確性,可以在U盤下拷貝任一大小的文件夾,然后在ucos嵌入式平臺(tái)上執(zhí)行該函數(shù),最后在電腦上用文件比較器軟件來比較前后兩文件夾的內(nèi)容是否一樣。

經(jīng)過反復(fù)多次的黑盒測(cè)試證明,該文移植后的exfat文件系統(tǒng)基本上實(shí)現(xiàn)了windows下exfat的全部功能,完全滿足了ucos-II嵌入式操作系統(tǒng)平臺(tái)上的使用。

4 結(jié)語

該文經(jīng)過不斷的研究探索,終于在ucos-II嵌入式操作系統(tǒng)平臺(tái)下實(shí)現(xiàn)了exfat文件的基本功能。該成果對(duì)于使用ucos-II操作系統(tǒng)來開發(fā)電子產(chǎn)品的用戶來說,具有非常好的現(xiàn)實(shí)意義,利用該成果,產(chǎn)品可以識(shí)別并讀寫文件系統(tǒng)格式為exfat的大容量移動(dòng)存儲(chǔ)設(shè)備,從而為多媒體文件的處理提供了可能。

參考文獻(xiàn)

[1] 諶愛文,陳仕許.初探在ucos-II上實(shí)現(xiàn)大容量?jī)?nèi)存文件系統(tǒng)[J].懷化學(xué)院學(xué)報(bào),2006(2):110-112.

[2] 王命延,余愛軍.一種加載在uCOS-II內(nèi)核上的嵌入式文件系統(tǒng)[J].南昌大學(xué)學(xué)報(bào),2005(2):197-199,204.

[3] 史久根,王躍,韓江洪.exFAT文件系統(tǒng)的優(yōu)化模型[J].計(jì)算機(jī)工程,2009(16):54-55,58.

[4] 朱晨.電子詞典中文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.

金寨县| 中山市| 蓬莱市| 资源县| 武宣县| 宿松县| 丰原市| 石渠县| 吉林市| 蓝田县| 旌德县| 云霄县| 兴安盟| 岑溪市| 泽普县| 马鞍山市| 武隆县| 香港| 洞口县| 长岭县| 福州市| 乐昌市| 那曲县| 景泰县| 西盟| 清苑县| 大姚县| 平舆县| 桦川县| 永吉县| 武功县| 从化市| 曲阳县| 理塘县| 洛阳市| 锡林郭勒盟| 克什克腾旗| 岐山县| 城市| 泊头市| 北宁市|