91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FATFS文件系統(tǒng)詳解:關(guān)于SD卡、SD nand、spi nor flash等眾多存儲(chǔ)設(shè)備

深圳市雷龍發(fā)展有限公司 ? 2023-09-07 17:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

文章目錄

FATFS文件系統(tǒng)詳解

1. 簡介

2. 基礎(chǔ)概念

3. FAT文件系統(tǒng)組成介紹

4. FAT文件系統(tǒng)分析

4.1 采用FAT格式格式化SD nand/sd卡

4.2 引導(dǎo)扇區(qū)分析

4.3 分區(qū)偏移及大小計(jì)算

4.4 FAT子類型確認(rèn)

4.4 訪問FAT條目

4.5 文件與簇之間的關(guān)系

4.6 FSInfo扇區(qū)結(jié)構(gòu)及備份引導(dǎo)扇區(qū)

4.7 FAT目錄

4.7.1 SFN 短文件名目錄

4.7.2 LFN長文件名

4.7.3 LFN系統(tǒng)對于SFN的兼容

5. 分區(qū)分析

5.1 保留分區(qū)分析

5.2 FAT區(qū)分析

5.3 根目錄區(qū)分析

5.4 數(shù)據(jù)區(qū)分析

5.5 新增文件測試

6. 總結(jié)

1. 簡介

在早期計(jì)算機(jī)剛發(fā)展的時(shí)候,那時(shí)候硬盤大小、flash設(shè)備容量都比較小,隨著技術(shù)的不斷迭代更新,硬盤容量越來越大。在早期,面對小容量的硬盤/flash,往往采用對應(yīng)地址存放對應(yīng)數(shù)據(jù)的方案,由于數(shù)據(jù)量不大,操作起來尚還可以。但是發(fā)展到今天,隨著硬盤/flash容量不斷增大,存儲(chǔ)的數(shù)據(jù)也越來越多,早期單一的對應(yīng)地址存放對應(yīng)數(shù)據(jù)的方案已經(jīng)無法滿足我們的需求,操作硬盤/flash會(huì)變得異常的困難復(fù)雜。

因此針對上述問題,一群大佬們便開始設(shè)計(jì)文件系統(tǒng)這樣一個(gè)東西,用來管理硬盤/flash上的數(shù)據(jù)信息,像我們電腦上打開文件夾,訪問里面的文件,這其實(shí)就是基于文件系統(tǒng)訪問電腦硬盤上數(shù)據(jù)的一個(gè)操作。

發(fā)展至今,文件系統(tǒng)已有眾多版本,本文主要分享 關(guān)于FAT文件系統(tǒng)的詳細(xì)設(shè)計(jì), FAT文件系統(tǒng)適用于嵌入式設(shè)備,如SD卡、SD nand、spi nor flash等眾多存儲(chǔ)設(shè)備,同時(shí)基于此文件系統(tǒng)的文件亦能被電腦正常讀取。

2. 基礎(chǔ)概念

在研究文件系統(tǒng)之前,我們需要首先弄清楚關(guān)于內(nèi)存這塊的幾個(gè)基本概念:

  1. 2.1.區(qū)分 扇區(qū)、塊、簇的概念
  • 扇區(qū)(sector):flash可操作的最小單元,通常指我們擦除的最小單元大小,以sd nand舉例,通常最小為512Byte
  • 塊(block) 以及 簇(cluster):其實(shí)這是兩個(gè)相同的概念,只是由于歷史原因,在不同系統(tǒng)上的不同稱呼,在windows中稱簇,而在linux中稱塊。一個(gè)簇/塊由多個(gè)扇區(qū)組成,由于一個(gè)扇區(qū)的空間較小,因此文件系統(tǒng)通過會(huì)將多個(gè)扇區(qū)組合在一起形成一個(gè)簇,并以簇為單位進(jìn)行讀寫操作! 一個(gè)簇通??梢杂?2、4、8、… 、2的n次方個(gè)扇區(qū)組成。
  1. 2.2.FAT文件系統(tǒng)總共由FAT12、FAT16以及FAT32三個(gè)版本,這是由于隨著存儲(chǔ)技術(shù)不斷發(fā)展,F(xiàn)AT文件系統(tǒng)迭代導(dǎo)致,數(shù)字越大,版本越新,新版本對老版本完全兼容!

3. FAT文件系統(tǒng)組成介紹

Fat文件系統(tǒng)官方文檔:

FAT文件系統(tǒng)在flash上的布局如下圖所示,總共由四個(gè)區(qū)域組成:

  • 保留區(qū)
  • FAT區(qū)
  • 根目錄區(qū) (FAT32類型不包含此區(qū)域)
  • 數(shù)據(jù)區(qū)
image.php?url=YD_cnt_89_01PgcfBlDVgHimage.php?url=YD_cnt_89_01PgcfgHPOh2

接下來,我們對一張格式化為FAT格式的SD卡進(jìn)行分析,理解FAT文件系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié):

4. FAT文件系統(tǒng)分析

4.1 采用FAT格式格式化SD nand/sd卡

1.使用win10格式化一張118.5M的SD nand / sd卡,我這里用的是手上的一顆 創(chuàng)世CS 家的sd nand加一塊轉(zhuǎn)接板,和SD卡完全沒有區(qū)別,且SD nand在穩(wěn)定性上比SD卡具有優(yōu)勢。

image.php?url=YD_cnt_89_01PgcfjVuYF4image.php?url=YD_cnt_89_01PgcfdrBppm

此處由于SD nand(SD卡)大小原因,默認(rèn)采用FAT16進(jìn)行了格式化!因此在下文中我們先以FAT16進(jìn)行分析,之后再重新格式化為FAT32進(jìn)行分析,就很容易懂了!

4.2 引導(dǎo)扇區(qū)分析

  1. 1.使用 winhex 工具打開對應(yīng)磁盤,注意需使用管理員權(quán)限運(yùn)行
image.php?url=YD_cnt_89_01PgcfeFoBIB

2.打開后我們可以以二進(jìn)制的格式查看SD卡上所有數(shù)據(jù),首先看到第一個(gè)扇區(qū),也就是對應(yīng)的引導(dǎo)扇區(qū) boot sector,注意引導(dǎo)扇區(qū)位于保留區(qū)!

image.php?url=YD_cnt_89_01PgcfdxqNCa

3.接下來我們根據(jù)官方文檔 對引導(dǎo)扇區(qū)進(jìn)行分析

注意,F(xiàn)AT文件系統(tǒng)數(shù)據(jù)均采用小端格式!

a) 首先是FAT12/16/32公共部分,(偏移值 0 - 35):

  • EB 3C 90:BS_JmpBoot,跳轉(zhuǎn)指令
  • 4D 53 44 4F 53 35 2E 30:BS_OEMName,MSDOS 5.0,一個(gè)名字,指示創(chuàng)建此卷的操作系統(tǒng),無其他作用
  • 00 02:BPB_BytsPerSec,扇區(qū)大小 512 字節(jié)
  • 04:BPB_SecPerClus,每次操作的最小扇區(qū)數(shù),簇 Cluster,4 (與格式化時(shí)選擇的大小匹配 2048 = 512 * 4)
  • 06 00:BPB_RsvdSecCnt,保留區(qū)的扇區(qū)數(shù),6 (通過此可計(jì)算,F(xiàn)AT區(qū)起始地址為 6 * 512 = 0xC00)
  • 02:BPB_NumFATs,F(xiàn)ATs的個(gè)數(shù),2(一般此值為2,多一個(gè)用來做冗余備份,解決系統(tǒng)異常導(dǎo)致第一個(gè)損壞時(shí),增大恢復(fù)的可能性,表示FAT區(qū)有兩個(gè)FATs備份)
  • 00 02:BPB_RootEntCnt,512,在FAT12/16系統(tǒng)中,此字段表示根目錄中32字節(jié)目錄條目數(shù)量,設(shè)置此值時(shí)需注意對齊,為了最大的兼容性,F(xiàn)AT16系統(tǒng)上此值應(yīng)設(shè)置為512,F(xiàn)AT32系統(tǒng)上此值應(yīng)設(shè)置為0
  • 00 00:BPB_TotSec16,16位大小區(qū)域描述FAT卷扇區(qū)總數(shù),0。當(dāng)FAT12/16系統(tǒng)扇區(qū)數(shù) ≥0x10000(65536)時(shí),此字段應(yīng)設(shè)置為0,真實(shí)值存放在 BPB_TotSec32 字段;對于FAT32系統(tǒng),此值必須為0。(此處由于我們的總扇區(qū)數(shù)=118.510241024/512 = 242688 > 65536,所以此字段為0)
  • F8:BPB_Media 媒體類型
  • ED 00:BPB_FATSz16,237,一個(gè)FAT占用的扇區(qū)數(shù),此字段僅在FAT12/16系統(tǒng)使用;FAT32系統(tǒng),此字段必須為0,使用BPB_FATSz32字段替代。FAT區(qū)總大小等于 BPB_FATSz?? * BPB_NumFATs 扇區(qū)(2372512=242688=0x3B400,由此可推算根目錄區(qū)起始地址:0x3B400+0xC00=0x3C000)。
  • 3F 00:BPB_SecPerTrk,每個(gè)磁道的扇區(qū)數(shù),此字段僅與具有幾何形狀且僅用于 IBM PC 的磁盤 BIOS 的介質(zhì)相關(guān),不用管。
  • FF 00:BPB_NumHeads,頭數(shù)量,此字段僅與具有幾何形狀且僅用于 IBM PC 的磁盤 BIOS 的介質(zhì)相關(guān),不用管。
  • 00 00 00 00:BPB_HiddSec,0,F(xiàn)AT 卷之前的隱藏物理扇區(qū)數(shù)(當(dāng)磁盤被分區(qū)之后,當(dāng)前分區(qū)并不一定是從扇區(qū)頭開始的)
  • 00 B4 03 00:BPB_TotSec32,242688,32位大小區(qū)域描述FAT卷扇區(qū)總數(shù)(整個(gè)卷空間大?。?。 FAT12/16系統(tǒng),扇區(qū)總數(shù)小于0x10000時(shí),此字段必須為0,真實(shí)值存放在BPB_FATSz16;FAT32系統(tǒng),此字段一直有效。(118.5M = 512 * 242688)

b) 接下來是FAT12/16特有字段(偏移值36)

  • 80:BS_DrvNum,IBM PC 的磁盤 BIOS 使用的驅(qū)動(dòng)器號(hào),00h代表軟盤,80h代表固定磁盤
  • 00:BS_Reserved,保留字段,0
  • 29:BS_BootSig,擴(kuò)展引導(dǎo)簽名,表示以下存在三個(gè)字段
  • 83 3E 07 E4:BS_VolID,與 BS_VolLab 一起構(gòu)成卷序列號(hào),一般在格式化的時(shí)候結(jié)合時(shí)間生成
  • 4E 4F 20 4E 41 4D 45 20 20 20 20:(解析為:"NO NAME “),BS_VolLab,11byte卷標(biāo),當(dāng)卷標(biāo)不存在時(shí),此值應(yīng)設(shè)置為"NO NAME”
  • 46 41 54 31 36 20 20 20:(解析為:"FAT16 "),BS_FilSysType文件系統(tǒng)類型,支持字段有:"FAT12 ", "FAT16 " or "FAT ",注意很多人認(rèn)為是通過此字段區(qū)分FAT12/16/32系統(tǒng)類型,實(shí)際是錯(cuò)誤的,文件系統(tǒng)類型實(shí)際上是根據(jù)磁盤大小確定的,官方文檔 “Determination of FAT sub-type” 章節(jié)或本博文后文有描述,不過為了最大的兼容性考慮,此字段應(yīng)設(shè)置為對應(yīng)文件系統(tǒng)的名字。
  • 33 C9 ~ CB D8:BS_BootCode,引導(dǎo)啟動(dòng)程序,與平臺(tái)有關(guān),不使用時(shí)填充為0
  • 55 AA:BS_BootSign,0xAA55,引導(dǎo)簽名,指示這是一個(gè)有效的引導(dǎo)扇區(qū)當(dāng)扇區(qū)大小大于512字節(jié)時(shí),剩余的字段應(yīng)全部使用0x0填充。

c) 如果是FAT32,則采用FAT32特有字段解析(偏移值和FAT12/16特有字段一致為36)

雖然此處我們的是FAT16格式,不過此處也將FAT的字段進(jìn)行描述,方便理解。

  • BPB_FATSz32:一個(gè)FAT占用的扇區(qū)數(shù),此字段僅在FAT32系統(tǒng)有效。FAT區(qū)總大小等于 BPB_FATSz?? * BPB_NumFATs 扇區(qū)。
  • BPB_ExtFlags:擴(kuò)展標(biāo)識(shí)字段,bit7=0,表示所有FAT都是鏡像的和活躍的;bit7=1,表示只有bit3-0表示的FAT是有效的。
  • BPB_FSVer:FAT32版本,高字節(jié)是主版本號(hào),低字節(jié)是次版本號(hào)。
  • BPB_RootClus:根目錄的第一個(gè)簇號(hào),此值通常為2,因?yàn)榍皟蓚€(gè)簇一般用于保留。
  • BPB_FSInfo:FSInfo結(jié)構(gòu)扇區(qū)與FAT32卷頂部的偏移扇區(qū)值。此值通常為1,因?yàn)槠渫ǔN挥谝龑?dǎo)扇區(qū)旁邊。
  • BPB_BkBootSec:備份引導(dǎo)扇區(qū)與FAT32卷頂部的偏移扇區(qū)值。此值通常為6,考慮最大的兼容性,此值不建議為其他值。
  • BPB_Reserved:保留
  • BS_DrvNum:含義與FAT12/16字段一樣
  • BS_Reserved:含義與FAT12/16字段一樣
  • BS_BootSig:含義與FAT12/16字段一樣
  • BS_VolID:含義與FAT12/16字段一樣
  • BS_VolLab:含義與FAT12/16字段一樣
  • BS_FilSysType:始終為"FAT32 ",對FAT類型的確定沒有任何影響。
  • BS_BootCode32:引導(dǎo)啟動(dòng)程序,與平臺(tái)有關(guān),不使用時(shí)填充為0
  • BS_BootSign:0xAA55,引導(dǎo)簽名,指示這是一個(gè)有效的引導(dǎo)扇區(qū)當(dāng)扇區(qū)大小大于512字節(jié)時(shí),剩余的字段應(yīng)全部使用0x0填充。

以上就是引導(dǎo)扇區(qū)內(nèi)容的詳細(xì)分析了,通過引導(dǎo)扇區(qū)的內(nèi)容,我們即可知道FAT文件系統(tǒng)依賴的硬件存儲(chǔ)空間大小、簇大小、扇區(qū)大小以及以及FAT系統(tǒng)版本等重要信息。

同時(shí)通過引導(dǎo)扇區(qū)的內(nèi)容,我們便可計(jì)算出對應(yīng)的FAT的四個(gè)區(qū)域的大小及起始偏移位置等重要信息,接下來計(jì)算FAT四個(gè)分區(qū)的起始位置及大小。

4.3 分區(qū)偏移及大小計(jì)算

FAT卷總共分為以下四個(gè)區(qū)域:

  • 保留區(qū)

1.第一個(gè)扇區(qū)為引導(dǎo)扇區(qū),存放BPB(BIOS Parameter Block)數(shù)據(jù),存放的是FAT卷的配置參數(shù)。

2.上述參數(shù)中以 BPB_ 命名的字段都是 BPB 的一部分,而以 BS_ 標(biāo)題命名的字段都不是 BPB 的一部分,而只是引導(dǎo)扇區(qū)的一部分

  • FAT區(qū)(分區(qū)表裝載區(qū))
  • 根目錄區(qū)
  • 數(shù)據(jù)區(qū)

各分區(qū)偏移地址及大小如下:

image.php?url=YD_cnt_89_01PgcfdGEMB3

此外,關(guān)于FAT區(qū),通常存在一個(gè)以上的FAT,如此處所格式化的sd卡便存在兩個(gè)FAT,對應(yīng)的偏移地址和大小如下:

image.php?url=YD_cnt_89_01PgcfcJ4Pw1

4.4 FAT子類型確認(rèn)

關(guān)于FAT的類型是FAT12/16/32確認(rèn):FAT類型由數(shù)據(jù)區(qū)內(nèi)簇的數(shù)量決定,除此之外無其他辦法!

  • 當(dāng)一個(gè)卷,簇的數(shù)量 ≤4085 時(shí),為FAT12
  • 當(dāng)一個(gè)卷,簇的數(shù)量 ≥4086 且 ≤65525 時(shí),為FAT16
  • 當(dāng)一個(gè)卷,簇的數(shù)量 ≥65526 時(shí),為FAT32

簇的數(shù)量計(jì)算公式:CountofClusters = DataSectors / BPB_SecPerClus;

如我們這里:CountofClusters = 242176 / 4 = 60544,所以為 FAT16!

當(dāng)簇的大小從 512 ~ 32768字節(jié)的各種條件下,不同類型FAT對應(yīng)卷的大小范圍如下:

image.php?url=YD_cnt_89_01PgcfbO1sP0

4.4 訪問FAT條目

FAT區(qū)由一條條FAT條目構(gòu)成,關(guān)于 FAT[N] 對應(yīng)的條目具體位置計(jì)算如下:

  • FAT16:
  • FAT32:

格外需要注意的是,不同格式,對應(yīng)的FAT條目的長度和格式不一樣:

此外對于FAT32格式,高4位是保留位,只有低28位有效!

具體如下圖所示:

image.php?url=YD_cnt_89_01PgcfaCcafI

4.5 文件與簇之間的關(guān)系

那么文件和簇之間的相互關(guān)系又是怎樣的呢?我們又是如何準(zhǔn)確的找到存放在flash上的文件的呢?接下來讓我們看下文件與簇之間的關(guān)系映射。

在FAT卷上文件通過目錄管理,目錄是一個(gè)32字節(jié)數(shù)組組成的目錄條目結(jié)構(gòu),此目錄結(jié)構(gòu)包含:文件名、文件大小、時(shí)間戳以及文件所在的第一個(gè)簇號(hào)。

簇號(hào)為0和1的簇被保留,由參數(shù)BPB_RootClus可知,有效簇從第2號(hào)簇開始。FAT[2](2號(hào)簇)對應(yīng)數(shù)據(jù)區(qū)的第一個(gè)簇。

因此第N個(gè)簇的位置計(jì)算公式如下:

FirstSectorofCluster = DataStartSector + (N - 2) * BPB_SecPerClus

每個(gè)條目所在的位置,對應(yīng)一個(gè)簇。當(dāng)文件長度大于一個(gè)簇長度時(shí),條目內(nèi)的值為下一個(gè)條目的索引,直到文件所在的最后一個(gè)簇,由此構(gòu)成簇鏈!文件所在的最有一個(gè)簇所對應(yīng)的FAT條目內(nèi)的值由一個(gè)特殊的值(EOC)組成,它永遠(yuǎn)不會(huì)匹配任何有效的簇號(hào),如下:

  • FAT12: 0xFF8 - 0xFFF (typically 0xFFF)
  • FAT16: 0xFFF8 - 0xFFFF (typically 0xFFFF)
  • FAT32: 0x0FFFFFF8 - 0x0FFFFFFF (typically 0x0FFFFFFF)

存在一些特殊的值被用來做損壞簇的標(biāo)記,如下:

  • FAT12: 0xFF7
  • FAT16:0xFFF7
  • FAT32:0xFFFFFFF7

不過此處需要注意,在FAT12/16系統(tǒng)上,上述特殊值絕不會(huì)和任何有效簇匹配,但是在FAT32上有可能,因此為了防止混淆,你在創(chuàng)建FAT32系統(tǒng)的時(shí)候應(yīng)該避免這種情況發(fā)生!因此FAT32系統(tǒng)上簇的上限為268435445(大于256M個(gè)簇)

FAT條目初始化的時(shí)候,F(xiàn)AT[2] 及以后的數(shù)據(jù)應(yīng)被初始化為0,指示未被使用處于空閑狀態(tài),如果值不為0,則意味著簇被損壞或被使用狀態(tài)。在FAT12/16系統(tǒng)上,空閑簇的數(shù)量未被記錄,而在FAT32系統(tǒng)上,F(xiàn)AT32支持FSInfo結(jié)構(gòu)體,里面記錄了空閑簇的數(shù)量。

關(guān)于FAT[0]和FAT[1]:

此兩個(gè)保留的條目,沒有與任何簇有聯(lián)系;不過具有其他意義,如下:

  • FAT12: FAT[0] = 0xF??; FAT[1] = 0xFFF;
  • FAT16: FAT[0] = 0xFF??; FAT[1] = 0xFFFF;
  • FAT32: FAT[0] = 0xFFFFFF??; FAT[1] = 0xFFFFFFFF;

FAT[0]中的?? 與 BPB_Media 相同;

FAT[1] 記錄了錯(cuò)誤歷史記錄:卷臟標(biāo)志(FAT16:bit15、FAT32:bit31),系統(tǒng)在啟動(dòng)的時(shí)候清除此位,正常關(guān)閉的時(shí)候恢復(fù)。

如果此位已經(jīng)清除,表明上次未被正常關(guān)閉,可能存在邏輯卷錯(cuò)誤;硬件錯(cuò)誤標(biāo)志(FAT16:bit14、FAT32:bit30)當(dāng)出現(xiàn)無法恢復(fù)的讀寫錯(cuò)誤時(shí)清除,表明需要進(jìn)行全面檢查。

關(guān)于FAT區(qū)域,有兩個(gè)重點(diǎn)注意事項(xiàng):

  • 第一個(gè)是FAT的最后一個(gè)扇區(qū)可能沒有被完全使用。在大多數(shù)情況下,F(xiàn)AT在扇區(qū)的中間結(jié)束。FAT驅(qū)動(dòng)程序不應(yīng)該對未使用的區(qū)域做出任何假設(shè)。在格式化卷時(shí),應(yīng)該用零填充它,并且在此之后不應(yīng)更改它。
  • 另一個(gè)是BPB_FATSz16/32可以指示比卷需要的值大的值。換句話說,未使用的扇區(qū)可以跟隨每個(gè)FAT。這可能是數(shù)據(jù)區(qū)域?qū)R或其他原因?qū)е碌摹M瑫r(shí),在格式化時(shí)這些扇區(qū)也會(huì)被用零填充。

下表展示了不同F(xiàn)AT類型中FAT值所對應(yīng)的含義解釋:

image.php?url=YD_cnt_89_01PgcfYvftka

4.6 FSInfo扇區(qū)結(jié)構(gòu)及備份引導(dǎo)扇區(qū)

此部分內(nèi)容只在FAT32系統(tǒng)上存在,對于FAT12系統(tǒng)FAT區(qū)域大小最大6KB,對于FAT16系統(tǒng)FAT區(qū)域最大128KB,但是在FAT32系統(tǒng)上FAT區(qū)域通常上達(dá)數(shù)MB,這是因?yàn)镕AT32系統(tǒng)支持FSInfo數(shù)據(jù)結(jié)構(gòu)。

在FAT32系統(tǒng)上新增FSInfo數(shù)據(jù)結(jié)構(gòu)的原因是:在FAT12/16系統(tǒng)上,想要知道flash上剩余的簇?cái)?shù)需要掃描整個(gè)FAT區(qū)才能計(jì)算出來,但隨著flash容量的不斷擴(kuò)大,掃描花費(fèi)的時(shí)長越來越長,為了避免掃描浪費(fèi)過多的時(shí)間,因此在FAT32系統(tǒng)上增加了FSInfo結(jié)構(gòu),用于記錄flash上剩余的簇?cái)?shù)。

FSInfo數(shù)據(jù)結(jié)構(gòu)如下:

image.php?url=YD_cnt_89_01PgcfYfv1SK

注意:當(dāng)扇區(qū)大小大于512字節(jié)時(shí), 剩余空間采用0x00填充

4.7 FAT目錄

FAT目錄分為長文件名目錄(LFN)以及短文件名目錄(SFN),長文件目錄是在短文件名目錄上的一個(gè)擴(kuò)展,具體采用長文件名還是短文件名由讀取FAT文件系統(tǒng)的操作系統(tǒng)決定,如windows;設(shè)置長文件名時(shí)短文件名也被設(shè)置,具有兼容性。

此外,有一個(gè)很重要的概念:在FAT文件系統(tǒng)上目錄也是一個(gè)文件,只是此文件的屬性不一樣而已。

在所有目錄中,有一個(gè)比較特殊的是根目錄,且根目錄作為頂層目錄必須存在。

  • 在FAT12/16系統(tǒng)中,根目錄不是一個(gè)文件,且放在根目錄區(qū),根目錄的最大條目數(shù)由 BPB_RootEntCnt 參數(shù)指示;
  • 在FAT32系統(tǒng)中,根目錄與子目錄沒有什么區(qū)別,且根目錄的起始簇由 BPB_RootClus 參數(shù)指示。
  • 根目錄與子目錄的另外一個(gè)區(qū)別是,根目錄不包含 . .. 此兩個(gè)點(diǎn)目錄,且它可以包含卷標(biāo)(具有ATTR_VOLUME_ID屬性的條目)

4.7.1 SFN 短文件名目錄

目錄條目結(jié)構(gòu)如下:

image.php?url=YD_cnt_89_01PgcfYOMLTJ

關(guān)于目錄結(jié)構(gòu)的第一個(gè)字段 DIR_Name 的第一個(gè)元素 DIR_Name[0] 在目錄表中有著特殊作用,如下:

  • 當(dāng)此值為 0xE5 時(shí),代表此目錄條目未被使用(或已廢棄)
  • 當(dāng)此值為 0x00 時(shí),也代表此目錄條目未被使用;此外還提示后續(xù)目錄條目也未被使用,因?yàn)楹罄m(xù)的目錄條目 DIR_Name[0] 都會(huì)是 0x00
  • 如果文件名的第一個(gè)字符為 0xE5 這個(gè)特殊值,則使用 0x05 替代。

這么設(shè)計(jì)的意義是什么呢?將 DIR_Name[0] 用作特殊字符,其目錄在于方便文件刪除!當(dāng)我們刪除一個(gè)文件的時(shí)候,文件系統(tǒng)并不會(huì)將此文件所對應(yīng)的數(shù)據(jù)全部刪除,因?yàn)槟菢犹M(fèi)時(shí)間了,也沒有必要,而是直接將對應(yīng)文件的目錄項(xiàng)中的 DIR_Name[0] 修改為 0xE5 即可!

關(guān)于文件名字段 DIR_Name,在FAT文件系統(tǒng)中還有如下規(guī)定:

  • DIR_Name 字段的11字節(jié)的文件名分為兩個(gè)部分:8 字節(jié)的主文件名 + 3字節(jié)的擴(kuò)展名;
  • 文件名中主文件名與擴(kuò)展名中間的 . 被省略,不在此記錄
  • 如果主文件名長度不夠,小于8字節(jié),則使用 0x20 空格填充
  • 用于設(shè)置文件名的字符也有限制,支持的字符有 0~9 A~Z ! # $ % & ’ - @ ^ _ ` { } ~
  • 主文件名和擴(kuò)展名中的(a~z)ASCII字符都會(huì)被轉(zhuǎn)化成大寫字符保存

以下為文件名存儲(chǔ)示例:

image.php?url=YD_cnt_89_01PgcfXRCN2y

4.7.2 LFN長文件名

長文件名是文件名的另外一種存儲(chǔ)方式,由于SFN短文件名具有長度、字符等限制,在一些場景下不能很好的滿足需求,因此就需要使用到長文件名,關(guān)于長文件名的具體內(nèi)容如下:

長文件名是一個(gè)具有特殊屬性的目錄條目。長文件名目錄屬性 DIR_Attr 字段的值 ATTR_LONG_NAME = (ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID) = 0x0F;

image.php?url=YD_cnt_89_01PgcfXgLGjm

關(guān)于長文件名的目錄屬性如下:

image.php?url=YD_cnt_89_01PgcfVe94pc

關(guān)于長文件名,有以下幾點(diǎn)重要概念:

  • 一個(gè)文件一定有短文名SFN,但不一定有長文件名LFN
  • 長文件名LFN字段中僅包含文件名信息,不包含其他內(nèi)容,其他內(nèi)容需要通過短文件名SFN查看
  • 如果一個(gè)文件既有長文件名也有短文件名,則長文件名是其主要名字,而短文件名則為附加名字
  • 長文件名LFN條目在對應(yīng)的短文件名SFN條目前面
  • 一個(gè)文件的長文件名最長255字符,對應(yīng)最多20個(gè)長文件名LFN條目
  • 長文件名簡單理解起始就是存儲(chǔ)一個(gè)字符串,因此沒有類似SFN的限制,允許有空格、支持大小寫、允許多個(gè).符號(hào)等
  • LFN條目文件名長度不夠,仍然采用0x20填充

下圖是官方關(guān)于一個(gè)名為 “MultiMediaCard System Summary.pdf” 的長文件名在flash上的長文件名條目,如下所示,一眼沒看明白也沒關(guān)系,后文有實(shí)例說明,對長文件名有概念了就行!

image.php?url=YD_cnt_89_01PgcfVyjcJC

關(guān)于長文件名的checksum字段和計(jì)算,算法如下:

  1. uint8_t create_sum (const DIR* entry)
  2. {
  3. int i;
  4. uint8_t sum;
  5. for (i = sum = 0; i < 11; i++) { /* Calculate sum of DIR_Name field */
  6. sum = (sum >> 1) + (sum << 7) + entry->DIR_Name[i];
  7. }
  8. return sum;
  9. }

4.7.3 LFN系統(tǒng)對于SFN的兼容

在使用LFN長文件名的系統(tǒng)中,會(huì)自動(dòng)生成SFN短文件名已確保此文件在短文件名的文件系統(tǒng)中可使用。同時(shí)為了防止生成的短文件名沖突,SFN的生成采用 名稱+數(shù)字后綴+擴(kuò)展 的格式,同時(shí)采用以下規(guī)則生成SFN:

  1. 小寫自動(dòng)轉(zhuǎn)大寫
  2. 如果存在空格,則刪去空格,設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  3. 已.開頭的文件刪除頭部的.,并設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  4. 存在多個(gè).的文件名,僅保留最后一個(gè)作為文件名與擴(kuò)展的分隔,并設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  5. 其他不支持的字符,采用_代替,并設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  6. 文件名如果是Unicode編碼,則轉(zhuǎn)化為ANSI/OEM編碼;不能轉(zhuǎn)換的字符采用_代替,并設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  7. 長度超過8字節(jié)的部分,截?cái)?,并設(shè)置有損轉(zhuǎn)換標(biāo)識(shí)
  8. 擴(kuò)展名字段超過3字節(jié)的,截?cái)啵⒃O(shè)置有損轉(zhuǎn)換標(biāo)識(shí)

有損轉(zhuǎn)轉(zhuǎn)換標(biāo)識(shí)為:~,ASCII值為0x7E,十進(jìn)制126

示例如下:

image.php?url=YD_cnt_89_01PgcfU9eSiQ

至此,F(xiàn)AT文件系統(tǒng)的理論部分已經(jīng)描述完了,接下來我們繼續(xù)使用winhex對數(shù)據(jù)進(jìn)行分析。

5. 分區(qū)分析

繼續(xù)回顧我們一開始的這張布局圖

image.php?url=YD_cnt_89_01PgcfUWfqrn

5.1 保留分區(qū)分析

保留分區(qū)為第一個(gè)分區(qū),其中引導(dǎo)扇區(qū)位于保留分區(qū)的第一個(gè)扇區(qū)。

根據(jù) 4.3 章節(jié)計(jì)算結(jié)果可知,保留分區(qū)起始地址為 0x00,大小 0xC00

保留分區(qū)數(shù)據(jù)如下,保留分區(qū)內(nèi)最重要的內(nèi)容即為引導(dǎo)扇區(qū),除引導(dǎo)扇區(qū)外,其他剩余空間全部保留,采用0x00覆蓋。關(guān)于引導(dǎo)扇區(qū)已在 4.2 章節(jié)詳細(xì)分析,此處不再做介紹。

image.php?url=YD_cnt_89_01PgcfU7EfL4

5.2 FAT區(qū)分析

根據(jù) 4.3 章節(jié)描述,F(xiàn)AT區(qū)的起始地址為 0xC00,大小為 0x3B400,此外存在兩個(gè)FAT區(qū),F(xiàn)AT1和FAT2,起始地址分別為:0xC00、0x1E600,對應(yīng)地址數(shù)據(jù)如下:

FAT1 數(shù)據(jù):

image.php?url=YD_cnt_89_01PgcfRXJhdS

FAT2 數(shù)據(jù)如下:

image.php?url=YD_cnt_89_01PgcfRuw8aa

由于此處采用FAT16格式,所以每個(gè)FAT條目占據(jù)兩個(gè)字節(jié)!

根據(jù)上述數(shù)據(jù)進(jìn)行分析:

  1. 確認(rèn) FAT2 為 FAT1 的備份;
  2. 存在5個(gè)FAT條目其中 FAT[0] 和 FAT[1] 為保留條目,F(xiàn)AT[0] 的內(nèi)容與 BPB_Media 媒體類型字段一致,F(xiàn)AT[1] 用來記錄錯(cuò)誤歷史記錄 (詳見 4.5 章節(jié)描述)
  3. 根據(jù)4.5章節(jié)描述,F(xiàn)AT[2](2號(hào)簇)對應(yīng)數(shù)據(jù)區(qū)的第一個(gè)簇,又FAT[2]、FAT[3]、FAT[4] 數(shù)據(jù)均為 0xFF,表明存在三個(gè)文件,且每個(gè)文件的大小小于等于一個(gè)簇的空間;且分別存放在數(shù)據(jù)區(qū)第1到第3個(gè)簇上!

此處可能大家會(huì)由疑問,剛剛格式化的sd卡為什么會(huì)存在文件內(nèi),其實(shí)這個(gè)是系統(tǒng)文件,格式化后自帶的,默認(rèn)是隱藏的,只有使用winhex才能看到,也就是對應(yīng)的System Volume Information文件夾。

5.3 根目錄區(qū)分析

注意,根目錄區(qū)只有 FAT12 / FAT16 系統(tǒng)上存在,在FAT32系統(tǒng)上不存在此區(qū)域。

根目錄區(qū)用來記錄根目錄下的文件內(nèi)容,根據(jù) 4.3 章節(jié)計(jì)算可知,根目錄區(qū)起始地址為:0x3C000,大小為0x4000,數(shù)據(jù)內(nèi)容如下:

image.php?url=YD_cnt_89_01PgcfTRvyt1

以下是對數(shù)據(jù)字段進(jìn)行分析后的內(nèi)容,如下圖所示:

image.php?url=YD_cnt_89_01PgcfPwyVkX

格式化之后,默認(rèn)會(huì)生成一個(gè)System Volume Infomation的系統(tǒng)文件夾,同時(shí)此文件夾是根目錄下唯一的一個(gè)文件,因此在根目錄的數(shù)據(jù)如上圖所示。

  • 此文件夾為目錄屬性,是隱藏的系統(tǒng)目錄
  • 長文件名為System Volume Information,短文件名為SYSTEM~1
  • 此目錄指向存放的數(shù)據(jù)在2號(hào)簇(對應(yīng)數(shù)據(jù)區(qū)第一個(gè)簇),文件大小字段,由于此文件為目錄屬性,此字段無意義,因此強(qiáng)制為0

至此,根目錄區(qū)分析完了,同時(shí)根目錄區(qū)的 System Volume Information文件指向數(shù)據(jù)區(qū)第一個(gè)簇(2號(hào)簇),接下來我們便進(jìn)入數(shù)據(jù)區(qū)進(jìn)行分析。

5.4 數(shù)據(jù)區(qū)分析

根據(jù) 4.3 章節(jié)計(jì)算可知,數(shù)據(jù)區(qū)起始地址為:0x40000,大小為242176 * 512 = 0x764 0000,數(shù)據(jù)內(nèi)容如下:

image.php?url=YD_cnt_89_01PgcfSOQ4tq

對應(yīng)數(shù)據(jù)字段分析如下:

image.php?url=YD_cnt_89_01PgcfON3MTS

System Volume Information 目錄下存在兩個(gè)文件,分別是IndexerVolumeGuid 和 WPSettings.dat。根據(jù)上述分析可知:

  • IndexerVolumeGuid文件的數(shù)據(jù)存放在 FAT[3],3號(hào)簇上,即數(shù)據(jù)區(qū)的第3個(gè)簇(數(shù)據(jù)區(qū)的第1個(gè)簇為2號(hào)簇);
  • WPSettings.dat 文件的數(shù)據(jù)存放在 FAT[4],4號(hào)簇上,即數(shù)據(jù)區(qū)的第2個(gè)簇(數(shù)據(jù)區(qū)的第1個(gè)簇為2號(hào)簇);

首先,我們跳轉(zhuǎn)到4號(hào)簇上查看IndexerVolumeGuid的數(shù)據(jù),對應(yīng)地址計(jì)算方式為:

FirstSectorofCluster = DataStartSector + (N - 2) * BPB_SecPerClus = 512 + (4 - 2) * 4

= 520;

對應(yīng)地址為: FirstSectorofCluster * BPB_BytsPerSec = 520 * 512 = 0x0004 1000

image.php?url=YD_cnt_89_01PgcfON3LNJ

接著跳轉(zhuǎn)到3號(hào)簇上查看WPSettings.dat的數(shù)據(jù),對應(yīng)地址計(jì)算方式為:

FirstSectorofCluster = DataStartSector + (N - 2) * BPB_SecPerClus = 512 + (3 - 2) * 4

= 516;

對應(yīng)地址為: FirstSectorofCluster * BPB_BytsPerSec = 520 * 512 = 0x0004 0800

image.php?url=YD_cnt_89_01PgcfM6J6Yc

5.5 新增文件測試

  1. 1.在根目錄下新增 test 目錄,使用winhex更新磁盤數(shù)據(jù),觀察各數(shù)據(jù)區(qū)變化
  • 保留區(qū)無變化
  • FAT區(qū)變化如下:
image.php?url=YD_cnt_89_01PgcfL03wCJimage.php?url=YD_cnt_89_01PgcfK51OY9
  • 根目錄區(qū)變化如下:
image.php?url=YD_cnt_89_01PgcfMt5Ce7
  • 數(shù)據(jù)區(qū)變化:
image.php?url=YD_cnt_89_01PgcfJ6dS23

2.新增long file test文件夾,里面存入一個(gè) 長度為 2050 Byte(占據(jù)兩個(gè)簇的空間) 的test.txt文件,使用winhex重新打開磁盤進(jìn)行分析。

image.php?url=YD_cnt_89_01PgcfIBb0yl
  • 保留區(qū)無變化
  • FAT區(qū)變化如下:
image.php?url=YD_cnt_89_01PgcfHkFIM3image.php?url=YD_cnt_89_01PgcfF806fp

根目錄區(qū)變化如下:

數(shù)據(jù)區(qū)變化如下:
long file test 目錄數(shù)據(jù)指向6號(hào)簇,跳轉(zhuǎn)至6號(hào)簇,地址 DataStartSector + (N - 2) * BPB_SecPerClus = 0x40000 + (6-2) * 4 * 512 = 0x420000

image.php?url=YD_cnt_89_01PgcfGDvwqX

test.txt 文件指向 7號(hào)簇,跳轉(zhuǎn)至7號(hào)簇,地址 DataStartSector + (N - 2) * BPB_SecPerClus = 0x40000 + (7-2) * 4 * 512 = 0x428000,均為test.txt的實(shí)際有效數(shù)據(jù),如下:

image.php?url=YD_cnt_89_01PgcfFR5F3qimage.php?url=YD_cnt_89_01PgcfEMLRTe

6. 總結(jié)

以上便是關(guān)于FAT文件系統(tǒng)的全部分析了,通過上述分析,外加新增文件輔助理解,對于文件在FAT文件系統(tǒng)下如何管理、存儲(chǔ),相信已經(jīng)有了非常深入的了解。

FAT文件系統(tǒng)分為四個(gè)區(qū):

保留區(qū)最重要的是里面包含引導(dǎo)扇區(qū),引導(dǎo)扇區(qū)內(nèi)存放著BIOS參數(shù)信息,通過此參數(shù)可以知道FAT文件系統(tǒng)的flash布局,以及flash大小,fat塊大小、簇大小等關(guān)鍵信息;

FAT區(qū),記錄了文件所占用簇的情況,以及對于文件大小大于一個(gè)簇的文件,在FAT區(qū)內(nèi)形成簇鏈,記錄文件由哪幾個(gè)簇組成

根目錄區(qū),只有FAT12/16系統(tǒng)所有,記錄了根目錄下的文件/目錄條目信息

數(shù)據(jù)區(qū),記錄數(shù)據(jù)分為兩個(gè)部分,第一部分為目錄信息,除根目錄外,每個(gè)文件夾需要占據(jù)一個(gè)及以上的簇描述對應(yīng)目錄下的文件情況;第二部分為具體文件數(shù)據(jù)。兩部分?jǐn)?shù)據(jù)通過短文件名SFN字段進(jìn)行關(guān)聯(lián)!

以上就是FAT文件系統(tǒng)的簡單概括,由于本文使用的是FAT16文件系統(tǒng)作為實(shí)例分析,關(guān)于FAT32文件系統(tǒng),在下一篇博文中進(jìn)行補(bǔ)充,敬請關(guān)注!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54007

    瀏覽量

    465929
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4787

    瀏覽量

    90057
  • SD卡
    +關(guān)注

    關(guān)注

    2

    文章

    589

    瀏覽量

    68685
  • TF卡
    +關(guān)注

    關(guān)注

    2

    文章

    91

    瀏覽量

    12986
  • flash內(nèi)存
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2346
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    SD NAND 為何不能存啟動(dòng)代碼,SPI NANDNOR Flash 卻可以 —— 接口、傳輸、啟動(dòng)機(jī)制全對比

    在嵌入式、物聯(lián)網(wǎng)、工控、車載硬件系統(tǒng)中, 啟動(dòng)存儲(chǔ)器(Boot Flash) ?是決定設(shè)備能否上電即跑、穩(wěn)定可靠的核心器件。實(shí)際選型中,
    的頭像 發(fā)表于 02-09 11:16 ?188次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> 為何不能存啟動(dòng)代碼,<b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b> 與 <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b> 卻可以 —— 接口、傳輸、啟動(dòng)機(jī)制全對比

    SPI NOR FlashSPI NAND Flash存儲(chǔ)芯片的區(qū)別

    SPI NOR FlashSPI NAND Flash并非相互替代,而是互補(bǔ)關(guān)系。
    的頭像 發(fā)表于 01-29 16:58 ?454次閱讀
    <b class='flag-5'>SPI</b> <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>和<b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b><b class='flag-5'>存儲(chǔ)</b>芯片的區(qū)別

    NOR FlashNAND FlashSD NAND,從底層結(jié)構(gòu)到應(yīng)用差異

    在嵌入式系統(tǒng)開發(fā)中,“存儲(chǔ)選型”是經(jīng)常會(huì)遇到的問題,特別是許多曾長期使用 NOR   Flash 的工程師,在切換到 NAND
    發(fā)表于 12-08 17:54

    SD NAND、TFSD的應(yīng)用領(lǐng)域大揭秘

    在如今這個(gè)數(shù)據(jù)爆炸的時(shí)代,各類存儲(chǔ)設(shè)備猶如繁星般閃耀,而SD NAND、TFSD
    的頭像 發(fā)表于 11-30 15:16 ?954次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、TF<b class='flag-5'>卡</b>、<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的應(yīng)用領(lǐng)域大揭秘

    解鎖SD NAND、TF、SD的應(yīng)用密碼

    在科技飛速發(fā)展的今天,數(shù)據(jù)存儲(chǔ)的需求滲透到生活與工作的每一個(gè)角落——從手腕上的智能手表,到專業(yè)攝影師的相機(jī),再到工廠里的工業(yè)路由器,都離不開高效可靠的存儲(chǔ)介質(zhì)。SD NAND、TF
    的頭像 發(fā)表于 11-24 11:04 ?521次閱讀
    解鎖<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、TF<b class='flag-5'>卡</b>、<b class='flag-5'>SD</b><b class='flag-5'>卡</b>的應(yīng)用密碼

    一文秒懂XTX SD NAND

    :原理、性能與應(yīng)用 隨著消費(fèi)電子、工業(yè)控制、汽車電子和安防監(jiān)控領(lǐng)域?qū)Ω呙芏取⒌统杀?b class='flag-5'>存儲(chǔ)需求的不斷攀升,SD NAND閃存因其體積小、集成度高、易于部署的特點(diǎn),成為
    的頭像 發(fā)表于 10-30 08:38 ?788次閱讀
    一文秒懂XTX <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    解鎖存儲(chǔ)密碼:SD NAND、TF、SD的應(yīng)用全景

    在數(shù)據(jù)洪流的時(shí)代,存儲(chǔ)介質(zhì)就如同數(shù)字世界的基石,支撐著各類設(shè)備的正常運(yùn)轉(zhuǎn)。SD NAND、TFSD
    的頭像 發(fā)表于 10-29 14:24 ?650次閱讀

    SD NAND寫保護(hù)問題的分析

    “安全移除”、長期使用產(chǎn)生壞塊、空間已滿系統(tǒng)為避免進(jìn)一步數(shù)據(jù)損壞,可能將自動(dòng)掛為“只讀” 。 惡意程序篡改分區(qū)表、文件系統(tǒng)設(shè)置,甚至設(shè)置隱藏的只讀/寫保護(hù)屬性,導(dǎo)致無法寫入或格式
    的頭像 發(fā)表于 10-21 10:28 ?519次閱讀
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>寫保護(hù)問題的分析

    SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別

    單元存儲(chǔ)一位數(shù)據(jù) (0或1) ,可以直接尋址,尋址速度非??臁?b class='flag-5'>SPI NOR FLASH支持全雙工、單工以及半雙工傳輸方式,被廣泛應(yīng)用于嵌入式系統(tǒng)
    的頭像 發(fā)表于 08-21 09:26 ?1574次閱讀

    一文讀懂 SD NAND,小白也能秒變存儲(chǔ)技術(shù)大神

    SD NAND 是一種貼片式存儲(chǔ)芯片,內(nèi)部集成 NAND FlashSD 控制器,兼容
    的頭像 發(fā)表于 08-19 14:40 ?2243次閱讀
    一文讀懂 <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>,小白也能秒變<b class='flag-5'>存儲(chǔ)</b>技術(shù)大神

    SD—雷龍 SD NAND

    一、SD介紹 1.基本介紹 本質(zhì):nand flash + 控制芯片 1.SD ,Secur
    的頭像 發(fā)表于 07-21 17:59 ?3746次閱讀
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>—雷龍 <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    【嵌入式開發(fā)】SD—雷龍 SD NAND

    Digital Ultra Capacity) 假如對SD的操作跟EEPROM或者NOR FLASH操作一樣,讀寫數(shù)據(jù)并驗(yàn)證數(shù)據(jù)的正確性,不需要FAT
    發(fā)表于 07-21 17:56

    NAND FlashSD NAND存儲(chǔ)扇區(qū)架構(gòu)差異

    NAND Flash?和?SDSD NAND)的存儲(chǔ)
    的頭像 發(fā)表于 03-13 15:20 ?1871次閱讀
    <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b>與<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>的<b class='flag-5'>存儲(chǔ)</b>扇區(qū)架構(gòu)差異

    Nand flashSDSD NAND存儲(chǔ)扇區(qū)分配表異同

    SD NAND)是基于 NAND Flash存儲(chǔ)設(shè)備,其
    發(fā)表于 03-13 10:45

    [上手體驗(yàn)]雷龍SD NAND:比TF更小更耐用

    SPI FLASH以及 NAND FLASH,基本沒聽說過SD NAND。查閱了雷龍官方介紹)
    發(fā)表于 03-08 14:28