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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

第24章

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

24.1

文件系統(tǒng)

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

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

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

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

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

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

24.2

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

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

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

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)。

與平臺無關,易于移植。

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

支持以下各種配置選項:

ANSI/OEM或Unicode中的長文件名。

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

RTOS的線程。

多個卷(物理驅(qū)動器和分區(qū),最多10個卷)。

可變扇區(qū)大小。

多個代碼頁,包括DBCS。

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

24.2.2

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

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

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

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

24.3

源碼下載

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

FatFs和Petit FatFs:

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

24.3.1

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

在移植FatFs文件系統(tǒng)到開發(fā)板之前,我們先要到 FatFs的官網(wǎng)獲取源碼,官網(wǎng)有對FatFs做詳細的介紹,有興趣可以了解。解壓之后可看到里面有 documents和source這兩個文件夾和LICENSE.txt文件,見圖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幫助文檔

打開documents文件夾,可看到如圖documents文件夾的文件目錄:

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

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

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

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

? 00index_e.html相當于FatFs的主頁。

? updates.txt記錄了各個版本的更新。

24.3.1.2

FatFs源碼

打開src文件夾,可看到如圖source文件夾的文件目錄:

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

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

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

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

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

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

? ffunicode.c:unicode編碼相關。FF_USE_LFN !=0時必須包含此文件。

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

? 00readme.txt:說明了當前目錄下各個文件的功能。

24.3.2

長文件名

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

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

24.3.3

FatFs限制

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

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

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

扇區(qū)大小:512、1024、2048和4096字節(jié)。

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

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

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

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

24.3.4

FatFs的已知問題

掃描下方二維碼或復制鏈接到瀏覽器查看:記錄著有關Fatfs最新版本的已知問題以及問題的解決方法或補丁。

下載鏈接

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

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

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

有需要的話可以按照官方提供的方法對源碼進行修改,由于我們這里使用的都是一些比較基礎的功能,這些功能是沒有問題的,所以就不進行修改了。

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

    關注

    10

    文章

    1752

    瀏覽量

    155632
  • 文件系統(tǒng)

    關注

    0

    文章

    304

    瀏覽量

    20996
  • 函數(shù)
    +關注

    關注

    3

    文章

    4419

    瀏覽量

    67620
  • FATFS
    +關注

    關注

    0

    文章

    46

    瀏覽量

    19553

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RA系列FSP開發(fā)實戰(zhàn)指南I2C讀寫EEPROM實驗

    使用官方提供的FPS進行編程,官方提供的FPS具有方便、快捷、簡潔的特性。
    的頭像 發(fā)表于 01-27 10:02 ?3491次閱讀
    <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'>庫</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C讀寫EEPROM實驗

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

    FatFs屬于軟件組件,不需要附帶其他硬件電路。我們使用串行Flash芯片作為物理存儲設備,其硬件電路在上一章已經(jīng)做了分析,這里就直接使用。
    的頭像 發(fā)表于 03-18 13:53 ?108次閱讀
    <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'>庫</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(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>移植實驗

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

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

    RA2L1入門學習】RA2L1開發(fā)環(huán)境搭建

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

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

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

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

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

    RA4系列開發(fā)板體驗】體驗過程

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

    【野火啟明6M5開發(fā)板體驗】開箱+認識開發(fā)板+資料

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

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

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

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

    Fatfs文件系統(tǒng)的移植)一、文件系統(tǒng)介紹二、移植條件、說明1、FatFs模塊在可移植性方面設定了以下條件:2、數(shù)據(jù)類型說明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是的集成開發(fā)環(huán)境,FSP 提供了眾多可提高效率的工具,用于開發(fā)針對
    的頭像 發(fā)表于 11-14 17:08 ?3173次閱讀
    <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)境

    【有獎直播預報名】電子RA系列產(chǎn)品開發(fā)工具FSP4.0.0新特性介紹

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

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

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

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

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