我在使用文件操作的时候遇到下面这样的问题
//删除所有测量定义文件(要保证所有测量定义文件都关闭)
for(i = 0 ; i <=9 ; i ++)
{
for(j=0;j<=9;j++)
{
FilenameSet(MeaFile,i,j);
sl_FsDel(g_Filename, 0);//测试发现若文件不存在,立即返回,若文件存在,大概会耗时60ms左右
UART_PRINT("\r\ndel file %s ok ",g_Filename);
FilenameSet(MarkFile,i,j);
UART_PRINT("\r\ndel file %s ok ",g_Filename);
sl_FsDel(g_Filename, 0);
FilenameSet(ADFile,i,j); UART_PRINT("\r\ndel file %s ok ",g_Filename);
}
}
重新创建99个文件
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
//计算指定组号和编号的测量定义在文件列表中的位置
lRetVal = sl_FsOpen((_u8 *)(FS_Mes_Filename+n), FS_MODE_OPEN_CREATE(1*1024,\
_FS_FILE_PUBLIC_WRITE), NULL, &lFileHandle_Mes[0]);
sl_FsClose(lFileHandle_Mes[0], 0, 0, 0);
n++;
}
}
调试发现 创建到14个文件左右,就报错了,返回码-24
不是内存溢出,flash选的512M,内存空余60M左右,单个文件大小设置为4K、 32K情况一致
每次创建结束直接删除可以从文件1一致创建到文件99,文件名定义无误
每次程序跑之前删除99个文件
问题可能在哪里,哪里能看到详细的error code,或者可以看flash里面的filelist
gaoyang9992006:
有没有出错时候的截图,给看看,根据你的描述没太理解你的问题所在。
amelia fang:
回复 gaoyang9992006:
啊 多谢回复 已经解决了,想来是芯片调试了很久了 之前已经建立了大大小小的文件都没有删除。 查资料提示文件最多建立128个,可能是总数超了,所以不能新建文件了。 用uniflash 格式化了就可以用了。