日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞頭條 >> 說說FATFS文件系統(tǒng)(轉(zhuǎn))
新聞資訊
NEWS INFORMATION

說說FATFS文件系統(tǒng)(轉(zhuǎn))

發(fā)布時間:2019-05-22

FATFS是一個為小型嵌入式系統(tǒng)設(shè)計的通用FAT(File Allocation Table)文件系統(tǒng)模塊。FatFs 的編寫遵循ANSI C,并且完全與磁盤I/O層分開。因此,它獨(dú)立(不依賴)于硬件架構(gòu)。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。 

 

FatFS文件系統(tǒng)包含了文件

 

ff.h         :文件系統(tǒng)實(shí)現(xiàn)頭文件,定義有文件系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu)

diskio.h  :底層驅(qū)動頭文件,就一些狀態(tài)宏的定義和底層驅(qū)動函數(shù)的申明

integer.h:僅實(shí)現(xiàn)數(shù)據(jù)類型重定義,增加系統(tǒng)的可移植性

ffconf.h :文件系統(tǒng)配置

ff.c  :文件系統(tǒng)實(shí)現(xiàn)。

diskio.c 底層驅(qū)動

 

FatFs 提供下面的函數(shù)API:

f_mount - 注冊/注銷一個工作區(qū)域(Work Area)

f_open - 打開/創(chuàng)建一個文件f_close - 關(guān)閉一個文件

f_read - 讀文件f_write - 寫文件

f_lseek - 移動文件讀/寫指針

f_truncate - 截斷文件

f_sync - 沖洗緩沖數(shù)據(jù) Flush Cached Data

f_opendir - 打開一個目錄

f_readdir - 讀取目錄條目

f_getfree - 獲取空閑簇 Get Free Clusters

f_stat - 獲取文件狀態(tài)

f_mkdir - 創(chuàng)建一個目錄

f_unlink - 刪除一個文件或目錄

f_chmod - 改變屬性(Attribute)

f_utime - 改變時間戳(Timestamp)

f_rename - 重命名/移動一個文件或文件夾

f_mkfs - 在驅(qū)動器上創(chuàng)建一個文件系統(tǒng)

f_forward - 直接轉(zhuǎn)移文件數(shù)據(jù)到一個數(shù)據(jù)流 Forward file data to the stream directly

f_gets - 讀一個字符串

f_putc - 寫一個字符

f_puts - 寫一個字符串

f_printf - 寫一個格式化的字符磁盤I/O接口

f_tell - 獲取當(dāng)前讀/寫指針

f_eof - 測試一個文件是否到達(dá)文件末尾

f_size - 獲取一個文件大小

f_error - 測試一個文件是否出錯

 

因?yàn)镕atFs模塊完全與磁盤I/O層分開,因此需要下面的函數(shù)來實(shí)現(xiàn)底層物理磁盤的讀寫與獲取當(dāng)前時間。底層磁盤I/O模塊并不是FatFs的一部分,并且必須由用戶提供。

disk_initialize - Initialize disk drive 初始化磁盤驅(qū)動器

disk_status - Get disk status 獲取磁盤狀態(tài)

disk_read - Read sector(s) 讀扇區(qū)

disk_write - Write sector(s) 寫扇區(qū)

disk_ioctl - Control device dependent features 設(shè)備相關(guān)的控制特性

get_fattime - Get current time 獲取當(dāng)前時間

FatFS系統(tǒng)特性

打開文件數(shù)量:無限制,與可用內(nèi)存有關(guān)。 卷(volume)數(shù)量:最多10個。 

文件大小:與FAT規(guī)范有關(guān)(最大4G-1字節(jié))。 

卷大。号cFAT規(guī)范有關(guān)(在512字節(jié)/扇區(qū)上,最大2T字節(jié)) 

簇(Cluster)大。号cFAT規(guī)范有關(guān)(在512字節(jié)/扇區(qū)上,最大64K字節(jié)) 扇區(qū)(Sector)大。号cFAT規(guī)范有關(guān)(最大4K字節(jié))

創(chuàng)建文件并讀寫的使用例程

1)f_mount(0, &fatFS);                                       

2)f_mkfs(0,1,512);                 //創(chuàng)建文件系統(tǒng)

FRESULT f_mkfs (
 BYTE  Drive,            
 BYTE  PartitioningRule, 
 WORD  AllocSize         );

 

分區(qū)規(guī)則:當(dāng)給定0時,首先在驅(qū)動器上的第一個扇區(qū)創(chuàng)建一個分區(qū)表,然后文件系統(tǒng)被創(chuàng)建在分區(qū)上。這被稱為FDISK格式化,用于硬盤和存儲卡。當(dāng)給定1時,文件系統(tǒng)從第一個扇區(qū)開始創(chuàng)建,而沒有分區(qū)表。這被稱為超級軟盤(SFD)格式化,用于軟盤和可移動磁盤。

3)f_getfree("0:", &fre_clust, &fs2)   //獲得磁盤存儲空間大小 

4)f_open(&file1, "/srcfile.txt",  FA_OPEN_ALWAYS | FA_READ | FA_WRITE);  //打開文件

FIL     file1;   

5)f_puts(cDataBuf, &file1);    //將cDataBuf[]數(shù)據(jù)寫入 文件srcfile.txt

6)f_sync (&file1);   //刷新文件

7)f_lseek(&file1, 0);   //從文件 偏移字節(jié)0出開始讀文件

8)f_read(&file1, buffer, 10,&r);     //讀出10個字節(jié)到 buffer[]中

9)f_close(&file1);   //操作完成  關(guān)閉文件

 

創(chuàng)建目錄例程

1) f_chdir("0:");   //切換到根目錄

2)f_mkdir("folder");   //創(chuàng)建目錄 folder

3)f_open(&file1, "folder/oldname2.txt", FA_CREATE_ALWAYS | FA_WRITE);  //打開folder目錄下的文件

4)f_close(&file1);    //關(guān)閉文件

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

香河县| 武胜县| 南华县| 延安市| 洪湖市| 和田县| 赤城县| 海淀区| 浠水县| 巴林左旗| 鱼台县| 拉萨市| 赤壁市| 永新县| 黄平县| 宝山区| 睢宁县| 衡山县| 陇川县| 石林| 大化| 福安市| 无为县| 利津县| 泗洪县| 吉林市| 延庆县| 丹凤县| 曲靖市| 安阳县| 辽源市| 光泽县| 乌恰县| 景宁| 大冶市| 双牌县| 连山| 娄底市| 苗栗县| 天门市| 定安县|