chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南之FatFs文件系統(tǒng)介紹

瑞薩嵌入式小百科 ? 來(lái)源:野火電子 ? 2026-03-18 13:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第24章

基于FLASH的FatFs文件系統(tǒng)移植

24.1

文件系統(tǒng)

即使讀者可能不了解文件系統(tǒng),讀者也一定對(duì)“文件”這個(gè)概念十分熟悉。數(shù)據(jù)在PC上是以文件的形式儲(chǔ)存在磁盤中的,這些數(shù)據(jù)的形式一般為ASCII 碼或二進(jìn)制形式。在上一章我們已經(jīng)寫好了串行 Flash芯片的驅(qū)動(dòng)函數(shù),我們可以非常方便的在串行Flash芯片上讀寫數(shù)據(jù)。如需要記錄文字,可以把這些文字轉(zhuǎn)化成相應(yīng)編碼的字符串,存儲(chǔ)在數(shù)組中,然后調(diào)用串行FLASH的寫函數(shù),把數(shù)組內(nèi)容寫入到串行Flash芯片的指定地址上,在需要的時(shí)候從該地址把數(shù)據(jù)讀取出來(lái),再對(duì)讀出來(lái)的數(shù)據(jù)以相應(yīng)編碼的格式進(jìn)行解讀。

但是,這樣直接存儲(chǔ)數(shù)據(jù)會(huì)帶來(lái)極大的不便,如難以記錄有效數(shù)據(jù)的位置,難以確定存儲(chǔ)介質(zhì)的剩余空間,以及應(yīng)以何種格式來(lái)解讀數(shù)據(jù)。就如同一個(gè)巨大的圖書館無(wú)人管理,雜亂無(wú)章地存放著各種書籍,難以查找所需的文檔。想象一下圖書館的采購(gòu)人員購(gòu)書后,把書籍往館內(nèi)一扔,拍拍屁股走人,當(dāng)有人來(lái)借閱某本書的時(shí)候,就不得不一本本地查找。這樣直接存儲(chǔ)數(shù)據(jù)的方式對(duì)于小容量的存儲(chǔ)介質(zhì)如EEPROM還可以接受,但對(duì)于大容量Flash芯片或者SD卡之類的大容量設(shè)備,我們需要一種高效的方式來(lái)管理它的存儲(chǔ)內(nèi)容。

這些管理方式即為文件系統(tǒng),它是為了存儲(chǔ)和管理數(shù)據(jù),而在存儲(chǔ)介質(zhì)建立的一種組織結(jié)構(gòu),這些結(jié)構(gòu)包括操作系統(tǒng)引導(dǎo)區(qū)、目錄和文件。常見(jiàn)的windows下的文件系統(tǒng)格式包括FAT32、NTFS、exFAT。在使用文件系統(tǒng)前,要先對(duì)存儲(chǔ)介質(zhì)進(jìn)行格式化。格式化先擦除原來(lái)內(nèi)容,在存儲(chǔ)介質(zhì)上新建一個(gè)文件分配表和目錄。這樣,文件系統(tǒng)就可以記錄數(shù)據(jù)存放的物理地址、剩余空間。

使用文件系統(tǒng)時(shí),數(shù)據(jù)都以文件的形式存儲(chǔ)。寫入新文件時(shí),先在目錄中創(chuàng)建一個(gè)文件索引,它指示了文件存放的物理地址,再把數(shù)據(jù)存儲(chǔ)到該地址中。當(dāng)需要讀取數(shù)據(jù)時(shí),可以從目錄中找到該文件的索引,進(jìn)而在相應(yīng)的地址中讀取出數(shù)據(jù)。具體還涉及到邏輯地址、簇大小、不連續(xù)存儲(chǔ)等一系列輔助結(jié)構(gòu)或處理過(guò)程。

文件系統(tǒng)的存在使我們?cè)诖嫒?shù)據(jù)時(shí),不再是簡(jiǎn)單地向某物理地址直接讀寫,而是要遵循它的讀寫格式。如經(jīng)過(guò)邏輯轉(zhuǎn)換,一個(gè)完整的文件可能被分開(kāi)成多段存儲(chǔ)到不連續(xù)的物理地址,使用目錄或鏈表的方式來(lái)獲知下一段的位置。

上一章的串行Flash芯片驅(qū)動(dòng)只完成了向物理地址寫入數(shù)據(jù)的工作,而根據(jù)文件系統(tǒng)格式的邏輯轉(zhuǎn)換部分則需要額外的代碼來(lái)完成。實(shí)質(zhì)上,這個(gè)邏輯轉(zhuǎn)換部分可以理解為當(dāng)我們需要寫入一段數(shù)據(jù)時(shí),由它來(lái)求解向什么物理地址寫入數(shù)據(jù)、以什么格式寫入及寫入一些原始數(shù)據(jù)以外的信息(如目錄)。這個(gè)邏輯轉(zhuǎn)換部分代碼我們也習(xí)慣稱之為文件系統(tǒng)。

24.2

FatFs文件系統(tǒng)介紹

上面提到的邏輯轉(zhuǎn)換部分代碼(文件系統(tǒng))即為本章的要點(diǎn),文件系統(tǒng)龐大而復(fù)雜,它需要根據(jù)應(yīng)用的文件系統(tǒng)格式而編寫,而且一般與驅(qū)動(dòng)層分離開(kāi)來(lái),很方便移植,所以工程應(yīng)用中一般是移植現(xiàn)成的文件系統(tǒng)源碼。

FatFs是面向小型嵌入式系統(tǒng)的一種通用的FAT文件系統(tǒng)。它完全是由ANSI C語(yǔ)言編寫并且完全獨(dú)立于底層的I/O介質(zhì)。因此它可以很容易地不加修改地移植到其他的處理器當(dāng)中,如8051、PIC、AVR、SH、Z80、H8、ARM等。FatFs支持FAT12、FAT16、FAT32等格式,所以我們利用前面寫好的串行Flash芯片驅(qū)動(dòng),把FatFs文件系統(tǒng)代碼移植到工程之中,就可以利用文件系統(tǒng)的各種函數(shù),對(duì)串行Flash芯片以“文件”格式進(jìn)行讀寫操作了。

FatFs文件系統(tǒng)的源碼可以從FatFs官網(wǎng)下載:

FatFs官網(wǎng)

http://elm-chan.org/fsw/ff/00index_e.html

FatFs源碼下載連接

http://elm-chan.org/fsw/ff/archives.html

24.2.1

FatFs特性

DOS/Windows兼容的FAT/exFAT文件系統(tǒng)。

與平臺(tái)無(wú)關(guān),易于移植。

程序代碼和工作區(qū)的占用空間非常小。

支持以下各種配置選項(xiàng):

ANSI/OEM或Unicode中的長(zhǎng)文件名。

exFAT文件系統(tǒng),64位LBA和GPT可存儲(chǔ)大量數(shù)據(jù)。

RTOS的線程。

多個(gè)卷(物理驅(qū)動(dòng)器和分區(qū),最多10個(gè)卷)。

可變扇區(qū)大小。

多個(gè)代碼頁(yè),包括DBCS。

只讀,可選API,I/O緩沖區(qū)等…

24.2.2

FatFs層級(jí)結(jié)構(gòu)

FatFs層級(jí)結(jié)構(gòu)如下:

34f474e8-20ed-11f1-90a1-92fbcf53809c.png

應(yīng)用層調(diào)用FatFs模塊接口,F(xiàn)atFs調(diào)用底層接口,實(shí)現(xiàn)對(duì)USB、SD卡等存儲(chǔ)設(shè)備的操作(需提供RTC時(shí)鐘給FatFs模塊)。

24.3

源碼下載

354db814-20ed-11f1-90a1-92fbcf53809c.png

FatFs和Petit FatFs:

PetitFatFs是用于小型8位微控制器的FatFs模塊的子集。它是按照ANSI C編寫的,并且與磁盤I/O層完全分開(kāi)。即使RAM大小小于扇區(qū)大小,也可以將其合并到內(nèi)存有限的微型微控制器中。我們這里選擇完整版的FatFs。

24.3.1

源碼結(jié)構(gòu)

在移植FatFs文件系統(tǒng)到開(kāi)發(fā)板之前,我們先要到 FatFs的官網(wǎng)獲取源碼,官網(wǎng)有對(duì)FatFs做詳細(xì)的介紹,有興趣可以了解。解壓之后可看到里面有 documents和source這兩個(gè)文件夾和LICENSE.txt文件,見(jiàn)圖FatFs文件目錄。documents文件夾里面是一些使用幫助文檔;source才是FatFs文件系統(tǒng)的源碼。而LICENSE.txt則是使用FatFs所需遵循的許可證。

FatFs 0.15版本的源碼結(jié)構(gòu)如下:

35a76026-20ed-11f1-90a1-92fbcf53809c.png

35ffbb18-20ed-11f1-90a1-92fbcf53809c.png

24.3.1.1

FatFs幫助文檔

打開(kāi)documents文件夾,可看到如圖documents文件夾的文件目錄:

aedf4e26-21b6-11f1-90a1-92fbcf53809c.png

documents這個(gè)文件夾下面存放的是FatFs模塊文檔:

? 其中doc文件夾里面是編譯好的html文檔,講的是FatFs里面各個(gè)函數(shù)的使用方法,這些函數(shù)都是封裝好的函數(shù),利用這些函數(shù)我們就可以操作串行Flash芯片。

? res文件夾包含doc文件夾下文件需要用到的圖片,還有四個(gè)名為app.c文件,內(nèi)容都是FatFs具體應(yīng)用例程。

? 00index_e.html相當(dāng)于FatFs的主頁(yè)。

? updates.txt記錄了各個(gè)版本的更新。

24.3.1.2

FatFs源碼

打開(kāi)src文件夾,可看到如圖source文件夾的文件目錄:

af33adcc-21b6-11f1-90a1-92fbcf53809c.png

source這個(gè)文件夾下面存放的是FatFs源碼:

? diskio.c/.h:IO層的實(shí)現(xiàn)。

? ff.c/.h:FatFs核心文件,文件管理的實(shí)現(xiàn)方法。該文件獨(dú)立于底層介質(zhì)操作文件的函數(shù),利用這些函數(shù)實(shí)現(xiàn)文件的讀寫。

? ffconf.h:這個(gè)頭文件包含了對(duì)FatFs功能配置的宏定義,通過(guò)修改這些宏定義就可以裁剪FatFs的功能。

? ffsystem.c:操作系統(tǒng)相關(guān)。

? ffunicode.c:unicode編碼相關(guān)。FF_USE_LFN !=0時(shí)必須包含此文件。

? 00history.txt:介紹了FatFs的版本更新情況。

? 00readme.txt:說(shuō)明了當(dāng)前目錄下各個(gè)文件的功能。

24.3.2

長(zhǎng)文件名

FatFs模塊支持FAT文件系統(tǒng)的長(zhǎng)文件名(LFN)擴(kuò)展名。默認(rèn)情況下,禁用LFN。如果要啟用LFN,要將FF_USE_LFN設(shè)置為1、2或3,并將ffunicode.c文件添加到項(xiàng)目中。LFN功能需要一定的工作緩沖區(qū)。緩沖區(qū)大小可由FF_MAX_LFN根據(jù)可用內(nèi)存配置。LFN的長(zhǎng)度最多可以為255個(gè)字符,因此FF_MAX_LFN也應(yīng)設(shè)置為255。

afe065d0-21b6-11f1-90a1-92fbcf53809c.png

24.3.3

FatFs限制

文件系統(tǒng)類型:FAT、FAT32(rev0.0)和exFAT(rev1.0)。

打開(kāi)的文件數(shù)量:無(wú)限制。(取決于可用內(nèi)存)

卷數(shù):最多10個(gè)。

扇區(qū)大?。?12、1024、2048和4096字節(jié)。

最小卷大?。?28個(gè)扇區(qū)。

最大卷大?。?2位LBA中的2^32-1扇區(qū),在帶有exFAT的64位LBA中幾乎不受限制。

最大文件大小:FAT卷上為2^32-1字節(jié),exFAT卷上幾乎不受限制。

群集大?。篎AT卷上最多128個(gè)扇區(qū),exFAT 卷上最多16MB。

24.3.4

FatFs的已知問(wèn)題

掃描下方二維碼或復(fù)制鏈接到瀏覽器查看:記錄著有關(guān)Fatfs最新版本的已知問(wèn)題以及問(wèn)題的解決方法或補(bǔ)丁。

下載鏈接

http://elm-chan.org/fsw/ff/patches.html

b08dc234-21b6-11f1-90a1-92fbcf53809c.png

網(wǎng)址上會(huì)公布已發(fā)現(xiàn)并解決的BUG,以補(bǔ)丁形式發(fā)布。以R0.14b版本為例,目前該版本有2個(gè)補(bǔ)丁。

有需要的話可以按照官方提供的方法對(duì)源碼進(jìn)行修改,由于我們這里使用的都是一些比較基礎(chǔ)的功能,這些功能是沒(méi)有問(wèn)題的,所以就不進(jìn)行修改了。

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

    關(guān)注

    10

    文章

    1758

    瀏覽量

    155854
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    305

    瀏覽量

    21033
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4421

    瀏覽量

    67813
  • FATFS
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    19597

原文標(biāo)題:基于FLASH的FatFs文件系統(tǒng)移植——瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南(85)

文章出處:【微信號(hào):瑞薩嵌入式小百科,微信公眾號(hào):瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南I2C讀寫EEPROM實(shí)驗(yàn)

    使用官方提供的FPS庫(kù)進(jìn)行編程,官方提供的FPS庫(kù)具有方便、快捷、簡(jiǎn)潔的特性。
    的頭像 發(fā)表于 01-27 10:02 ?3718次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C讀寫EEPROM實(shí)驗(yàn)

    RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南基于FLASH的FatFs文件系統(tǒng)移植實(shí)驗(yàn)

    FatFs屬于軟件組件,不需要附帶其他硬件電路。我們使用串行Flash芯片作為物理存儲(chǔ)設(shè)備,其硬件電路在上一章已經(jīng)做了分析,這里就直接使用。
    的頭像 發(fā)表于 03-18 13:53 ?8203次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>庫(kù)</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>基于FLASH的<b class='flag-5'>FatFs</b><b class='flag-5'>文件系統(tǒng)</b>移植實(shí)驗(yàn)

    e2studio(1)----芯片搭建FSP環(huán)境

    視頻教學(xué) 樣品申請(qǐng) 請(qǐng)勿添加外鏈 e2studio軟件 e2studio是的集成開(kāi)發(fā)環(huán)境,FSP 提供了眾多可提高效率的工具,用于開(kāi)發(fā)
    發(fā)表于 09-30 15:28

    RA2L1入門學(xué)習(xí)】RA2L1開(kāi)發(fā)環(huán)境搭建

    e2 studio 和 FSP 的下載、安裝及使用指南 1. 什么是 e2 studio 和 FSP? e2 studio 是電子(Re
    發(fā)表于 03-07 11:33

    RA6E2地奇星開(kāi)發(fā)板試用】介紹、環(huán)境搭建、工程測(cè)試

    RA6E2開(kāi)發(fā)板 - 立創(chuàng)開(kāi)源硬件平臺(tái) . 開(kāi)發(fā)環(huán)境 開(kāi)發(fā)環(huán)境支持 e^2^ studio 和 Keil ,這里主要介紹和使用前者。 下載并
    發(fā)表于 12-07 15:27

    RA4系列開(kāi)發(fā)板體驗(yàn)】開(kāi)發(fā)環(huán)境搭建和新手點(diǎn)燈指南

    RA4系列開(kāi)發(fā)板體驗(yàn)】開(kāi)發(fā)環(huán)境搭建和新手點(diǎn)燈指南
    發(fā)表于 11-24 22:54

    RA4系列開(kāi)發(fā)板體驗(yàn)】體驗(yàn)過(guò)程

    拿到板子之后,做了幾個(gè)實(shí)驗(yàn)過(guò)程,過(guò)程如下:1、在好奇心驅(qū)動(dòng)下,逐步接觸;參照網(wǎng)上的實(shí)例,學(xué)習(xí)開(kāi)發(fā)環(huán)境一、開(kāi)箱驗(yàn)貨二、搭建環(huán)境參考“ 【
    發(fā)表于 12-18 16:20

    【野火啟明6M5開(kāi)發(fā)板體驗(yàn)】開(kāi)箱+認(rèn)識(shí)開(kāi)發(fā)板+資料

    按鍵檢測(cè)29. WiFi——模塊通訊板尺寸:3、資料:*附件:[野火EmbedFire]《RA系列FSP
    發(fā)表于 12-20 23:28

    FatFs文件系統(tǒng)使用

    STM系列FatFs文件系統(tǒng)使用文件,希望對(duì)大家有幫助。
    發(fā)表于 11-06 18:10 ?10次下載

    Fatfs文件系統(tǒng)的移植)

    Fatfs文件系統(tǒng)的移植)一、文件系統(tǒng)介紹二、移植條件、說(shuō)明1、FatFs模塊在可移植性方面設(shè)定了以下條件:2、數(shù)據(jù)類型說(shuō)明3、
    發(fā)表于 11-15 18:51 ?22次下載
    <b class='flag-5'>Fatfs</b>(<b class='flag-5'>文件系統(tǒng)</b>的移植)

    FATFS文件系統(tǒng)原版文件下載

    FATFS文件系統(tǒng)原版文件下載
    發(fā)表于 06-25 09:02 ?0次下載

    e2studio(1)----芯片搭建FSP環(huán)境

    e2studio是的集成開(kāi)發(fā)環(huán)境,FSP 提供了眾多可提高效率的工具,用于開(kāi)發(fā)針對(duì)
    的頭像 發(fā)表于 11-14 17:08 ?3407次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>e2studio(1)----<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>芯片<b class='flag-5'>之</b>搭建<b class='flag-5'>FSP</b>環(huán)境

    【有獎(jiǎng)直播預(yù)報(bào)名】電子RA系列產(chǎn)品開(kāi)發(fā)工具FSP4.0.0新特性介紹

    為使用電子RA系列ARM微控制器的嵌入式系統(tǒng)設(shè)計(jì)提供簡(jiǎn)單易用且可擴(kuò)展的高質(zhì)量軟件。 直播主題
    的頭像 發(fā)表于 11-22 12:20 ?1664次閱讀

    【視頻教程】RA單片機(jī)FSP開(kāi)發(fā)(3)FSP架構(gòu)-解釋Blinky架構(gòu)[上]

    干貨分享 前篇回顧 【視頻教程】RA單片機(jī)FSP開(kāi)發(fā)(1)環(huán)境搭建(帶RASC) 【視頻教程】
    的頭像 發(fā)表于 12-06 12:15 ?2103次閱讀

    電子RA系列微控制器的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用指南

    電子RA系列微控制器的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用指南
    的頭像 發(fā)表于 06-11 17:21 ?2168次閱讀