• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      楊利

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

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

      中圖分類(lèi)號(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ì)硬盤(pán)讀寫(xiě)頻繁等問(wèn)題,是目前大容量移動(dòng)存儲(chǔ)設(shè)備文件系統(tǒng)的首選。ucos-II嵌入式文件系統(tǒng)由于其開(kāi)放性、免費(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)核源碼完全開(kā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)見(jiàn)圖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)容,通過(guò)分析VBR的內(nèi)容,可以很清楚地定位FAT表、根目錄、數(shù)據(jù)區(qū)的位置,從而也很容易查找到任一指定名的文件。

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

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

      一個(gè)目錄,可以由多個(gè)不同的目錄類(lèi)型組成,因?yàn)椴煌哪夸涱?lèi)型有不同的目錄結(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)、目錄類(lèi)型等;然后根據(jù)對(duì)文件操作的需求,編寫(xiě)相關(guān)的操作函數(shù),如打開(kāi)、讀寫(xiě)、關(guān)閉文件等,命名以exfat_打頭。如打開(kāi)文件函數(shù)命名為exfat_openfile;最后將這些exfat文件操作函數(shù)和ucos-II的文件系統(tǒng)關(guān)聯(lián)起來(lái),例如當(dāng)操作系統(tǒng)上層調(diào)用openfile函數(shù)時(shí),如果此時(shí)存儲(chǔ)設(shè)備的文件系統(tǒng)格式為exfat,那么openfile函數(shù),最終會(huì)調(diào)用下層的exfat_openfile函數(shù)來(lái)完成具體的操作。

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

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

      4 結(jié)語(yǔ)

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

      參考文獻(xiàn)

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

      [2] 王命延,余愛(ài)軍.一種加載在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.

      正镶白旗| 蒙自县| 定西市| 金沙县| 宣武区| 灌南县| 太仓市| 剑阁县| 康保县| 醴陵市| 阿拉善右旗| 闵行区| 呈贡县| 隆德县| 溧阳市| 涞水县| 梁山县| 平湖市| 舞阳县| 常山县| 安乡县| 二手房| 班玛县| 分宜县| 北宁市| 普兰县| 康平县| 光山县| 沽源县| 阿坝县| 团风县| 新巴尔虎左旗| 襄樊市| 堆龙德庆县| 原阳县| 闻喜县| 昌邑市| 阿拉善左旗| 枝江市| 乌恰县| 新余市|