新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MC9S12UF32的嵌入式文件系統數據存儲模塊

        MC9S12UF32的嵌入式文件系統數據存儲模塊

        作者: 時間:2010-04-01 來源:網絡 收藏

        具體移植過程如下:
        (1)媒介初始化函數
        DSTATUS disk_initialize(BYTE drv)
        由于采用的媒介是SD卡,所以該函數的實際功能是對SD卡進行初始化。drv是介質號碼,由于Tiny-FatFS只支持一個存儲介質,所以此處drv始終取O值。執行無誤,則返回值=O;執行中出現錯誤,則返回非O值。
        (2)狀態檢測函數
        DSTATUS disk_status(BYTE drv)
        該函數用于檢測是否支持當前的存儲介質。此處的drv仍然恒為O。對Tiny-FatFS而言,只要drv為O,就認為支持當前介質,函數直接返回O值即可。
        (3)讀扇區函數
        DRESULT disk read(BYTE drv,BYTE*buff,DWORD seetor,BYTE.count)
        該函數是在“單片機從SD卡讀取一個扇區”的函數基礎上編寫而成的,其功能是從SD卡讀取一個或多個扇區的。*buff用于存儲已經讀取的,sector是待讀取扇區的起始扇區數,count是需要讀取的扇區數。如果執行無誤則返回O值,否則返回非O值。
        (4)寫扇區函數
        DRESULT disk_write(BYTE drv,const BYTE*buff。DWORD sector,BYTE count)
        與disk_read相似,該函數是在“單片機向SD卡寫入一個扇區”的函數基礎上編寫而成的,其功能是向SD卡導入一個或多個扇區的。*buff用于保存將要寫入的數據,sector是待寫入扇區的起始扇區數,count是需要寫入的扇區數。如果執行無誤,則返回0值;否則,返回非0值。
        (5)存儲介質控制函數
        DRESULT disk_ioctl(BYTE drv,BYTE ctrl,VoiI*buff)
        ctrl是控制代碼,*buff用于保存或接收需要控制的數據數據。使用者可以在此函數里添加自己需要的功能代碼,例如獲得存儲介質的容量、扇區數等。如果是簡單的應用,也可以不執行任何功能,直接返回0值。本文采用的就是這一方法。
        (6)實時鐘函數
        DWORD disk_fattime(Void)
        該函數將讀取的實時鐘信息保存在一個32位無符號整數中,并將其作為函數的返回值。時鐘信息在這32位中的具體分布如表1所列。

        本文引用地址:http://www.104case.com/article/151973.htm


        3.3 FatFS的裁減與配置Tiny-FatFS
        FatFs提供了豐富的庫函數,可以實現創建、讀取夾,創建、讀寫,移動指針,向文件中寫入或讀取字符串,甚至是類似與C語言fprintf()的格式化輸入等各種功能。使用者可以根據自己的需求設置相應的宏,對FatFs進行裁減,僅保留需要的功能函數,從而精簡文件的內存開銷。FatFS提供的函數與宏的對應關系如圖3所示。


        FatFS的裁減,不僅僅是函數層面的。更重要的是,在內部機制上形成一個精簡版本,稱為Tiny-FatFS。它與標準版FatFS相比,主要的區別在于Tiny-FatFS僅支持一個物理存儲介質,而且不再針對每個開啟的文件建立512字節的緩存,整個文件和物理介質使用同一個緩存。顯然,Tiny-FatFs需要的內存開銷比標準版FatFS更低,只要1 KB左右的RAM。可以說,Tinyr-FatFS是專門為小型而設計的文件系統。本文介紹的數據存儲系統使用的正是Tiny-FatFS版本。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 铅山县| 金塔县| 林西县| 长武县| 华池县| 张家界市| 南汇区| 佛教| 嘉定区| 炉霍县| 丁青县| 涪陵区| 钦州市| 合作市| 丹寨县| 晋宁县| 黄冈市| 宁德市| 额济纳旗| 开鲁县| 伊吾县| 郁南县| 六安市| 延庆县| 岳阳市| 乌拉特前旗| 陇西县| 大田县| 山东| 广宁县| 怀仁县| 宜章县| 丰镇市| 柳河县| 阳江市| 吴忠市| 佛坪县| 马鞍山市| 郑州市| 惠东县| 垦利县|