f_lseek FATFS快速读写

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

f_lseek  FATFS快速读写

文章插图
【f_lseekFATFS快速读写】
f_lseek  FATFS快速读写

文章插图
上面是官方给出的资料 。
需要注意的几点:
f_lseek  FATFS快速读写

文章插图
1.
首先是这两个宏定义必须先置位
f_lseek  FATFS快速读写

文章插图
2.设置快速读写,不能再扩展文件大小
f_lseek  FATFS快速读写

文章插图
3.具体设置
f_lseek  FATFS快速读写

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