FATFS快速读写(f_lseek)

上面是我的微信和QQ群,欢迎新朋友的加入。

上面是官方给出的资料。

需要注意的几点:

1.

首先是这两个宏定义必须先置位

2.设置快速读写,不能再扩展文件大小

3.具体设置

当file对象中的成员cltbl不是NULL时,可以启用快速查找函数。在使用快速查找函数之前,必须在DWORD数组中创建CLMT。要创建CLMT,将DWORD数组的地址设置为open file对象中的成员cltbl,将数组的大小设置为第一项,并使用ofs = CREATE_LINKMAP调用f_lseek函数。在创建了函数和CLMT之后,在接下来的f_read、f_write、f_lseek函数中没有FAT access。使用或需要的项的数量将返回到数组的第一项。要使用的项的数量是(文件片段的数量+ 1)* 2。例如,当文件在5中分割时,将使用数组中的12个条目。如果函数以FR_NOT_ENOUGH_CORE失败,那么给定的数组大小对该文件来说是不够的。

4.具体使用

/* Using fast seek function */

    DWORD clmt[SZ_TBL];                    /* Cluster link map table buffer */

    res = f_open(fp, fname, FA_READ | FA_WRITE);   /* Open a file */

    res = f_lseek(fp, ofs1);               /* This is normal seek (cltbl is nulled on file open) */

    fp->cltbl = clmt;                      /* Enable fast seek function (cltbl != NULL) */
    clmt[0] = SZ_TBL;                      /* Set table size */
    res = f_lseek(fp, CREATE_LINKMAP);     /* Create CLMT */
    ...

    res = f_lseek(fp, ofs2);               /* This is fast seek */

 

 

 

 

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值