新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于M25P32 SPI Flash的TFFS設計與實現

        基于M25P32 SPI Flash的TFFS設計與實現

        作者: 時間:2010-06-17 來源:網絡 收藏


        在函數formatVolume中,mount可進行卷操作,當內存的數據結構準備好后,FTL層即可調用函數flDosFormat來創建DOS。其中首先創建隱藏扇區,以用于記錄該卷的部分信息,然后分別創建MBR、FAT和ROOT目錄;這樣,DOS創建完成后,再執行dosFsDevCreat函數,當然就無須格式化,找到0扇區自然就找到了MBR,因為DOS是FTL創建的。

        從更深層次講,FTL層之所以創建DOS層,是因為只有FTL層才知道有哪些扇區是可以供DOS使用的,哪些扇區是DOS不能使用的(作為FTL層管理使用),也正是因為DOS層不了解FTL層的運作情況,所有的扇區映射關系都被FTL層隱蔽,因而導致DOS層無法在上層作出有利于擦寫等優化動作,如大文件寫入時的字節數更新,FAT表更新等操作,都會嚴重浪費FTL層的映射關系運算。

        4 基于 設計

        對于的實現,涉及到config.h、sysTffs.c、tffsConifg.c、tffsMtd.c、Makefile幾個文件的配置和修改,其中編譯是通過建立一個downloadalbe的tomado工程,來把這幾個.c源文件編譯進去生成.pl文件提供給bsp工程,而后由bsp工程把.pl文件編譯進去,從而生成bootable image。

        4.1 Config.h的相關配置

        要在vxworks映像中加入文件系統,需要加入相關的組件,雖然也可以在該文件中直接加入相應的配置宏,但很容易造成遺漏和有些需要依賴的宏沒有定義或者沖突,本文采用的方法是建一個bootable的tornado工程,而后在這個工程中通過加入TFFS和DOSFS的相關組件來編譯這個工程,從而生成一個prjParams.h文件,該文件里就包含了剛剛加入的組件對應的宏,因而,組件與組件之間依賴也是安全的,不會有任何沖突,最后再在Config.h中包含這個文件即可。

        4.2 sysTffs.c文件的修改

        該文件用于提供socket層的bsp實現代碼。如果鏡像文件包含TFFS相關組件,那么,系統啟動時就會按照如下過程自動調用sysTffsInit()函數:

        usrRoot()→tffsDrv()→flInit()→flRegisterComponent ()→sysTffslnit ()

        sysTffsInit ()函數會依次調用socket注冊函數simmRegisterOfsl (),注冊函數數量視需要構建的文件系統數量而定,本文構建了1個文件系統ofsl,并在simmRegisterOfsl()函數中對文件系統的基地址進行了設置,同時對FLSocket()結構體中的毀掉處理函數進行了掛接,掛接函數也在該文件中實現,如卡上電、斷電、寫保護等。

        對sysTffsFormaOfsl()函數的格式化參數可根據自己的需要進行修改。

        4.3 tffsConfig.c和tffSMtd.c文件的修改

        tffsConfig.c文件的修改就是在mtdTalbe []表中注冊識別函數iUnifiedIdentifyOfsl();而tffsConfig.c文件則用于實現iUnifiedldentifyOfsl()函數,iUnifiedIdentifyOfsl()函數對FLFlash結構體中的回調函數進行了掛接,如flash的讀、寫、擦除等,掛接函數的具體實現可在Dry_MvSFlash.cpp文件中以一個類的方式提供針對 spi Flash操作的所有驅動接口。

        4.4 TFFS文件系統的安裝

        通過上面的過程,socket層和mtd層就都準備好了,下面便可以安裝tffs文件系統。安裝時,首先用sysTffsFormatOfsl()函數按照上面設定的參數格式化TFFS文件系統,而后通過usrTffsConfig(0,0,”ofsl”)函數接口在已建好的TFFS上掛接DOS文件系統,成功后,即可通過open、read、write等來操作Flash上的文件系統,也可以通過FTP方式用IE訪問該文件系統中的內容。

        4.5 Makefile文件的修改

        對于Makefile的修改非常簡單,因為幾個和TFFS相關的源文件都是以.pl的方式被鏈人bsp工程的,所以只需要在makefile文件中把這個文件加入即可,即在makefile中加了如下的宏定義:

        MACH_EXTRA+=../ArmPri/ARMARCH5gnu/ArmBspPrj.pl

        5 結束語

        本文對VxWorks下TFFS文件系統的層次結構和FTL層的啟動過程、塊映射算法、垃圾回收算法以及用FTL創建DOSFS進行了分析,給出了在 Flash上創建TFFS文件系統和將TFFS掛在DOSFS的實現方法。通過對TFFS核心層FIL的分析給出的TFFS實現方法,可以從更基礎的層面來認識VxWorks中的TFFS文件系統,從而給TFFS文件系統的問題定位和實現帶來新的方法。

        上一頁 1 2 3 下一頁

        關鍵詞: M25P32 Flash TFFS SPI

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 荔浦县| 汉中市| 紫阳县| 乐陵市| 建昌县| 乌什县| 明星| 新邵县| 双江| 慈利县| 湛江市| 盘山县| 江阴市| 遵义市| 丹巴县| 贵港市| 罗平县| 千阳县| 迁安市| 拜城县| 洪雅县| 富蕴县| 德昌县| 黄梅县| 河南省| 论坛| 从江县| 黑河市| 旺苍县| 图们市| 邢台县| 勐海县| 朝阳市| 广州市| 房产| 义马市| 八宿县| 陕西省| 大宁县| 封开县| 清新县|