Fatfs 关于sd卡初始化问题请教,小弟最近在学习fatfs 这个据说很优秀的文件系统,用的是最新的0.08版本。
现在已经能够知道如何调用和运用fatfs来做一些简要的操作。
但是我有个问题,关于系统如何调用sd卡初始化的,我通过仔细看了后发现调用sd卡初始化的函数是
1、chk_mounted 没有任何条件直接 调用stat = disk_initialize(fs->drv);
2、f_mkfs 调用 stat = disk_initialize(drv);
关于f_mkfs 我不是很了解,但是 关于chk_mounted 这个函数是检查
/* Check if the file system object is valid or not */
关于它的调用就很多了...
....................................................................................................
f_open mode &= FA_READ | FA_WRITE | FA_CREATE_ALWAYS | FA_OPEN_ALWAYS | FA_CREATE_NEW;
res = chk_mounted(&path, &dj.fs, (BYTE)(mode & ~FA_READ));
...................................................................................................
f_chdir
res = chk_mounted(&path, &dj.fs, 0);
...................................................................................................
f_getcwd
res = chk_mounted((const TCHAR**)&path, &dj.fs, 0); /* Get current volume */
...................................................................................................
FRESULT f_opendir
res = chk_mounted(&path, &dj->fs, 0);
...................................................................................................
FRESULT f_stat
res = chk_mounted(&path, &dj.fs, 0);
...................................................................................................
FRESULT f_getfree
res = chk_mounted(&path, fatfs, 0);
...................................................................................................
FRESULT f_unlink
res = chk_mounted(&path, &dj.fs, 1);
................................................................................................
FRESULT f_mkdir
res = chk_mounted(&path, &dj.fs, 1);
.................................................................................................
FRESULT f_chmod
res = chk_mounted(&path, &dj.fs, 1);
...............................................................................................
FRESULT f_utime
res = chk_mounted(&path, &dj.fs, 1);
...............................................................................................
FRESULT f_rename
res = chk_mounted(&path_old, &djo.fs, 1);
以上是我一一罗列出来 关于最终调用sd卡初始化的相关函数,我有一个很大的疑问?为什么每次操作这些函数都要初始化一次sd卡呢?为什么不是开始的时候初始化一次就完成了呢?
在我印象中sd卡重要初始化一次,后面的都可以直接操作读写了
还有一点要说明的是这个fatfs 文件系统在网上评价很高,而且我也亲自测试了,这个确实是很优秀的。
望各位熟悉的能够给我指点,关于这个sd初始化为什么要操作这么多次,我印象中初始化每次都要等待比较长的时间的。
------解决方案--------------------
好像没人回答啊
------解决方案--------------------