FATFS总结

(1)

在一个很好 的文章FatFs模块功能配置选项,里面提到_FS_LOCK设置为0时对编程者要求很高。这句话有意思。于是试了试,

将_FS_LOCK设置为0,果然无论打开多少次文件,都是返回值OK。那么呵呵,我还是不要把_FS_LOCK设置为0了

要注意两个返回值:

FR_LOCKED,    /* (16) The operation is rejected according to the file sharing policy

FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_LOCK */
--------------------- 

前一个返回值是针对相同的文件,比如open一个1.TXT返回OK后,再次打开1.TXT那么返回FR_LOCKED。

后一个返回值针对不同文件,比如open一个1.TXT返回OK后,然后打开2.TXT,那么返回FR_TOO_MANY_OPEN_FILES

这是实验出来的,可能不全面。


-------------------------

2019.03.14 added

有这个变量

static FILESEM Files[FF_FS_LOCK];    /* Open object lock semaphores */

 

结构体:

typedef struct {
    FATFS *fs;        /* Object ID 1, volume (NULL:blank entry) */
    DWORD clu;        /* Object ID 2, containing directory (0:root) */
    DWORD ofs;        /* Object ID 3, offset in the directory */
    WORD ctr;        /* Object open counter, 0:none, 0x01..0xFF:read mode open count, 0x100:write mode */
} FILESEM;
发现了个事情 

一旦进入文件夹,即便退出来,ctr值也不清零。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值