新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F103VB的SD卡在應用編程設計

        STM32F103VB的SD卡在應用編程設計

        作者: 時間:2012-02-21 來源:網絡 收藏

        3.2 芯片存儲組織結構
        的程序存儲器、數據存儲器、寄存器和輸入/輸出端口被組織在同一個4 GB的線性地址空間內。閃存區域即用戶代碼區域被置于0x08000000~0x0801FFFF的地址范圍。方案中IAP程序被事先燒錄進0x08000000~0x08002FFF的閃存區域,用戶程序緊接著IAP程序進行存放,可使用的范圍為0x08003000~0x0801FFFF的閃存區域。IAP程序內存分配如圖5所示。

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

        e.jpg


        3.3 FAT32文件格式
        為了方便終端用戶的操作和增加方案的通用性,本以FAT32分區格式標準對卡進行格式化,FAT32分區格式常見于通用的PC機平臺。FAT32分區格式如圖6所示。采用FAT32分區格式的卡內部結構包括主啟動區域、FAT表區域、根目錄區域、數據存儲區域四部分。
        其中位于主啟動區域開始位置的第一個保留扇區為起始扇區,包括很多重要的數據信息,如每個扇區的字節數、FAT表個數及大小、每簇扇區數、總扇區數、根目錄起始位置等等。FAT32包含兩張FAT表,它們緊接主啟動區域后面,是分區信息的映射表,主要功能是指示文檔如何按簇存放。根目錄區域包含了根目錄下文檔和目錄信息的內容。在根目錄區域可以獲得指定文檔的信息,如文檔名、文檔屬性、創建時間、文檔大小和文檔在FAT表中第一個簇的地址等。數據區域是實際的文檔存儲的地方,占據了磁盤的大部分空間。
        FAT32分區格式中文檔是以簇為最小單位進行存儲的,固定每簇的容量為4 KB。一個文檔根據其大小被分為一個或者若干個簇存儲在數據區域,這些簇通常是以零散而不是連續的方式分布在數據存儲區域,形成的單鏈表稱為簇鏈,簇鏈的具體信息可從FAT表中獲得。圖7為FAT32文檔讀取方式示意圖。

        f.jpg


        FAT32文檔讀取步驟如下:
        ①在起始扇區中獲取卡信息。
        ②根目錄所在的物理地址通過下面公式得出。根目錄地址=(隱藏扇區個數+保留扇區個數+FAT所占扇區個數×FAT數量)×扇區字節數。
        ③在根目錄表中檢索文檔名為“UPDATE”的文檔,獲取其在FAT表中的首簇地址。首簇號的高字節和低字節位于以文檔名起始的偏移量為0x14和0x1a的共四個字節。圖7中UPDATE文檔首簇號為0003。
        ④在FAT表的簇號為0003的位置中存放的信息為0004,即下一個簇的位置;在簇號為0004的位置中存放的是簇號為0006的地址信息,由此一步步得出由簇號組成的單鏈表,一直到簇號為0008的位置中存儲的信息為0FFFFFFF,證明此時已到文檔的末尾,簇鏈結束。圖7中文檔“UP DATE”占用的簇所形成的簇鏈為0003-0004-0006-0008,總共占用了4個簇、16 KB的數據存儲空間。
        ⑤根據簇鏈中的簇號在數據存儲區域中獲取文檔的數據內容。例如圖7中文檔“UPDATE”的數據內容即是由0003、0004、0006、0008四個簇中的數據內容File[0]、File[1]、File[2]、File[3]所組成。

        分頻器相關文章:分頻器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新宁县| 湖州市| 雷州市| 定远县| 盘山县| 望谟县| 天津市| 界首市| 汉阴县| 榆社县| 上思县| 浮梁县| 邓州市| 资溪县| 建德市| 巢湖市| 鄂尔多斯市| 当雄县| 郁南县| 依兰县| 呼伦贝尔市| 民丰县| 普安县| 周口市| 新巴尔虎右旗| 兴化市| 荔波县| 铁力市| 仪陇县| 沧源| 洪湖市| 曲麻莱县| 金华市| 阳山县| 陇南市| 洛川县| 湾仔区| 盐池县| 循化| 鸡泽县| 成安县|