欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

fatfs 同时读写多个文件注释

最编程 2024-04-03 08:38:51
...

        我目前使用fatfs是采用的SDIO接口读写emmc,采用8线模式,同一时间可以同时传一个字节,因此对于emmc来讲,同一时间仅仅允许操作一个文件,该文件操作完毕之后才可以操另一个文件,必须保持异步操作。

        对于fatfs来讲,默认采用的仅仅同时操作一个文件,如果我们打开多个文件读写,该怎么做呢,需要进行一些设置。

设置项如下:

1.打开ffconf.h,设置文件可重入标志位FF_FS_REENTRANT 为1,同时设置同步对象的类型FF_SYNC_t,目前我用的ucosii设置如下:

2.在ffsystem.c设置同步相关函数,create,del,pend,post,目前我用的是ucosii采用的是互斥锁

ff_cre_syncobj - 创建同步对象

ff_del_syncobj -删除同步对象

ff_req_grant - 获取同步权限

ff_rel_grant - 释放同步权限

3.如何生效

在f_read,f_write开头结尾会采用互斥锁的方式独占该读写操作,如下函数

validate - 获取操作权限,最终调用的是ff_req_grant

LEAVE_FF - 释放操作权限,最终调用的是ff_rel_grant

通过以上两个函数来进行文件读写互斥。

 

总之,fatfs多个文件读写,必须异步进行。

推荐阅读