fatfs中f_mount 注册工作区的指针必须为全局变量?
FATFS fs;res=f_mount(0, &fs);//注册一个工作区
fs最好是全局的,要不然在别的函数调用fatfs函数会失败。 我在icc 中测试是这样的,原先在主函数中定义的,没问题,在整理函数后把注册工作区的函数单独为子函数后,整个文件系统崩溃了。将fs定义为全局就好了。 我记得fatfs里面有说明
FATFS结构体内含一个大的buf,不要定义为局部变量,不然的话栈可能会溢出。 使用 static 可以在函数里面定义,不先用栽空间 lusson 发表于 2014-1-28 16:59
我记得fatfs里面有说明
FATFS结构体内含一个大的buf,不要定义为局部变量,不然的话栈可能会溢出。 ...
嗯,没看到这个之前,我居然去把堆栈的数量增大了,让它能够跑。 这个肯定要全局的啊,因为你挂载的磁盘所有的信息都在这个结构体中,一这个是唯一标志一个磁盘的。 lusson 发表于 2014-1-28 16:59
我记得fatfs里面有说明
FATFS结构体内含一个大的buf,不要定义为局部变量,不然的话栈可能会溢出。 ...
最大的一个数组就只有512,应该不是这个原因
页:
[1]