新版的RL-FlashFS感觉有bug,经常会出现同名文件名
最近使用的下MDK5.25的RL-FlashFS,基于nand flash.正常操作根目录是没问题的,很耐操.但是当使用fopen("/test/data/myfile.dat","w");这种方法不断的创建同一个文件写入数据后再关闭.刚开始也是没问题的.
但是过一段时间这个目录就会出现N多个myfile.dat文件。出现时间不定.
但是如果是不停的fopen("/myfile.dat","w");就没事。
硬汉有没有遇到过?
新版的我还没有用过,一直用的老版的。回头我用了,跟楼主交流下。 楼主是用keil中的那个向导工具添加的么?还是自己移植的啊?好讨厌cmsis的封装层, 浅眠 发表于 2018-9-4 20:40
楼主是用keil中的那个向导工具添加的么?还是自己移植的啊?好讨厌cmsis的封装层,
新版的只能用RTE开发环境,自己手动添加库文件还是很麻烦的。 遇到了同样的问题,不止LZ找到问题没。 qianniao29 发表于 2019-8-9 09:15
遇到了同样的问题,不止LZ找到问题没。
我新版的例子已经发布了,暂无这种问题
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277 eric2013 发表于 2019-8-9 10:49
我新版的例子已经发布了,暂无这种问题
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简 ...
我的中间件的版本,使用的SD卡。另外还有一个问题是,usb MSC连接电脑一段时间后就会hardfault,很奇怪。
qianniao29 发表于 2019-8-9 15:28
我的中间件的版本,使用的SD卡。另外还有一个问题是,usb MSC连接电脑一段时间后就会hardfault,很奇怪。 ...
SD卡的也有,在这里,你试试:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94145&extra=page%3D1%26filter%3Dtypeid%26typeid%3D184 eric2013 发表于 2019-8-9 15:51
SD卡的也有,在这里,你试试:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94145&extra=page ...
参考过您的例子,这个cmiss drive为什么要用自己的,官方的有问题吗。
qianniao29 发表于 2019-8-9 15:57
参考过您的例子,这个cmiss drive为什么要用自己的,官方的有问题吗。
是的,H7的,官方的有bug,被我修正了。 把文件名改短就好了,难道Fs_Dbg_LFN_CM3_L.lib不是支持长文件名的库吗,之前是文件名10个字符后缀3个字符。但是单独测试时,又是可以的。 qianniao29 发表于 2019-8-14 22:50
把文件名改短就好了,难道Fs_Dbg_LFN_CM3_L.lib不是支持长文件名的库吗,之前是文件名10个字符后缀3个字符 ...
这个是长文件名的库 解决了。用usb连接设备和电脑,通过usb msc格式化下sd卡就好了,之前用读卡器在电脑上格式化的。 qianniao29 发表于 2019-8-20 15:55
解决了。用usb连接设备和电脑,通过usb msc格式化下sd卡就好了,之前用读卡器在电脑上格式化的。
谢谢告知最后原因。 qianniao29 发表于 2019-8-9 09:15
遇到了同样的问题,不止LZ找到问题没。
没解决,直接弃用了,转用yaffs了 RL-FlashFS V6.13版本我也一直出现了同名文件的多次被创建,fopen (M0:\\CAN1\\CAN1_1.csv, "a+")追加方式。fopen和fclose每写入1000条数据才重复执行一次。 我目录创建在二级目录。好困扰 cms277415310 发表于 2019-12-23 15:43
RL-FlashFS V6.13版本我也一直出现了同名文件的多次被创建,fopen (M0:\\CAN1\\CAN1_1.csv, "a+")追加方式 ...
如果有我们V7板子话,用我们V7板子和配套例子测试下,无此问题。 eric2013 发表于 2019-12-23 15:56
如果有我们V7板子话,用我们V7板子和配套例子测试下,无此问题。
我是参照 V7-RTX5 RL-FlashFS RL-USB Template 工程做的,不知道是怎么回事,我写的数据量比较大,5ms一条数据,一条80字节左右。 好几路文件一直执行的 cms277415310 发表于 2019-12-23 16:15
我是参照 V7-RTX5 RL-FlashFS RL-USB Template 工程做的,不知道是怎么回事,我写的数据量比较大,5m ...
不清楚你这个什么鬼,你再研究研究吧。
不多,我之前是写了100万条。 eric2013 发表于 2019-12-23 16:38
不清楚你这个什么鬼,你再研究研究吧。
不多,我之前是写了100万条。
记录下RL-FLASHFS出现的问题,
写数据部分代码:
void CAN_Write_CSV_File(const char* path, CAN_SAVE_MSG_T* can_save_msg)
{
fsTime timedate;
sys_time_t* sys_time;
const uint8_t WriteText[] = {"序号,帧 类 型,ID,帧 数 据,时间\r\n"};
charframe_type; // 帧类型:1:扩展数据帧,2:标准数据帧,3:标准远程帧,4:扩展远程帧
sys_time = get_sys_time();
/*
1. 打开文件,如果没有此文件会自动创建。
2. 第二个参数表示向此文件写数据都从尾部开始添加。
*/
/* 写数据,如果是第一次写数据 */
if ((FILE_SAVE_CLOSE == can_save_msg->file_state) || (0 == (can_save_msg->frame_idx%CAN_SAVE_PER)))
{
for (;;)
{
can_save_msg->fout = fopen (path, "a+");
if (NULL != can_save_msg->fout)
{
can_save_msg->file_state = FILE_SAVE_OPEN;
/* 设置文件或目录时间戳 */
timedate.year = (sys_time->year<1980)?1980:sys_time->year;;
timedate.mon= sys_time->month;
timedate.day= sys_time->day;
timedate.hr = sys_time->hour;
timedate.min= sys_time->min;
timedate.sec= sys_time->sec;
ftime_set (path, &timedate, &timedate, &timedate);
break;
}
osDelay(2);
}
}
if (NULL != can_save_msg->fout)
{
/* 写数据,如果是第一次写数据,先写CSV文件的表项的题目,以后写数据不再需要写此表项 */
if (0 == (can_save_msg->frame_idx%CAN_SAVE_NWE_FILE))
{
fprintf(can_save_msg->fout, (char *)WriteText);
fflush(can_save_msg->fout);
}
/* 帧类型:0:扩展数据帧,1:扩展远程帧,2:标准数据帧,3:标准远程帧 */
memcpy(frame_type, fram_type_table, sizeof(frame_type));
if (2 > can_save_msg->frame_type)
{
/* 扩展帧 */
fprintf(can_save_msg->fout, "%-d,%-s,%02X %02X %02X %02X,%02X %02X %02X %02X %02X %02X %02X %02X,%4d-%02d-%02d %02d:%02d:%02d:%03d\r\n", \
can_save_msg->frame_idx, \
frame_type, \
(unsigned char)(can_save_msg->ID>>24), \
(unsigned char)(can_save_msg->ID>>16), \
(unsigned char)(can_save_msg->ID>>8), \
(unsigned char)can_save_msg->ID, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
sys_time->year, \
sys_time->month, \
sys_time->day, \
sys_time->hour, \
sys_time->min, \
sys_time->sec, \
sys_time->msec);
}
else
{
/* 标准帧 */
fprintf(can_save_msg->fout, "%-d,%-s,%02X %02X,%02X %02X %02X %02X %02X %02X %02X %02X,%4d-%02d-%02d %02d:%02d:%02d:%03d\r\n", \
can_save_msg->frame_idx, \
frame_type, \
(unsigned char)(can_save_msg->ID>>8), \
(unsigned char)can_save_msg->ID, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
can_save_msg->Data, \
sys_time->year, \
sys_time->month, \
sys_time->day, \
sys_time->hour, \
sys_time->min, \
sys_time->sec, \
sys_time->msec);
}
fflush(can_save_msg->fout);
if (NULL != ferror(can_save_msg->fout))
{
printf("写入内容失败\r\n");
}
if ((CAN_SAVE_PER-1) == (can_save_msg->frame_idx%CAN_SAVE_PER))
{
/* 关闭文件 */
for (;;)
{
if (0 == fclose (can_save_msg->fout))
{
can_save_msg->file_state = FILE_SAVE_CLOSE;
can_save_msg->fout = NULL;
break;
}
osDelay(2);
}
}
}
else
{
printf("打开文件失败\r\n");
}
}
cms277415310 发表于 2019-12-25 11:26
记录下RL-FLASHFS出现的问题,
写数据部分代码:
得深入研究啊,看我这个,RTX的中间件要用好,需要好好花一番心思的。
eric2013 发表于 2019-12-25 11:31
得深入研究啊,看我这个,RTX的中间件要用好,需要好好花一番心思的。
我是用RTE环境建立的文件系统(MDK5.29),每16s写一次SD卡,每次写3个文件,其中2个覆盖写(“w”),一个追加写(“a”),每次写入数量:覆盖16048、38字节,追加256字节。
文件名 是 14.3 格式
也是一样的产生N多个同样文件名,同样建立时间,内容也一样 eric2013 发表于 2019-12-25 11:31
得深入研究啊,看我这个,RTX的中间件要用好,需要好好花一番心思的。
你们发布的例程是每次写入文件都 fmount 和 funmount,这是必须的吗?
我因为只有SD卡写入,所以是在开机初始化 fmount 一次
yangskyhigh 发表于 2020-3-8 18:24
你们发布的例程是每次写入文件都 fmount 和 funmount,这是必须的吗?
我因为只有SD卡写入,所以是在 ...
不是,是为了给大家展示功能,才这么做的。 yangskyhigh 发表于 2020-3-8 18:06
我是用RTE环境建立的文件系统(MDK5.29),每16s写一次SD卡,每次写3个文件,其中2个覆盖写(“w”),一 ...
把写入的文件名从 14.3格式换成 6.3格式,同名文件现象暂未出现。 我这边也碰到这个问题了,出现了很多个同名文件,不知道大家是怎么解决的 yangskyhigh 发表于 2020-3-10 13:25
把写入的文件名从 14.3格式换成 6.3格式,同名文件现象暂未出现。
切换到8.3? 飘逸流云aa 发表于 2020-3-10 15:41
我这边也碰到这个问题了,出现了很多个同名文件,不知道大家是怎么解决的
使用我创建的工程,没有这个问题:
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277 eric2013 发表于 2020-3-10 15:47
切换到8.3?
RTE还是保留着 支持长文件名,但实际写文件时文件名是6.3,即10字节。现在没有出现了多个重名文件的问题,但新发现出现了有文件没有写成功的现象,还在排查。 eric2013 发表于 2020-3-10 15:48
使用我创建的工程,没有这个问题:
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单, ...
你这个工程,和MDK5.29下SDIO的驱动已经不兼容了,SDMMC_MASK_SDIOITIE定义都变了
要是方便的话,你能切换到新版本下测试吗? MDK5.29,HAL驱动1.7.0吗? yangskyhigh 发表于 2020-3-11 00:01
你这个工程,和MDK5.29下SDIO的驱动已经不兼容了,SDMMC_MASK_SDIOITIE定义都变了
要是方便的话,你能切 ...
不影响,RTE可以选择软件包版本的,以CMSIS为例
https://img.anfulai.cn/dz/attachment/forum/201911/18/082337xy7cykmnkveli4hw.png
我这边也出现了重复文件名的问题。我用的是NAND,不管是长文件名还是短文件名的库都会出现重复文件名的问题。关键是这个问题不是每个板子都有的,有的板子有,有的板子又没有。 yswtxiao 发表于 2020-4-17 10:46
我这边也出现了重复文件名的问题。我用的是NAND,不管是长文件名还是短文件名的库都会出现重复文件名的问题 ...
使用我创建的工程,当前没有一个些板子能用,一些板子不能用的情况。
基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94277
eric2013 发表于 2020-4-17 10:52
使用我创建的工程,当前没有一个些板子能用,一些板子不能用的情况。
基于V7的新版RL-USB和RL-FlashFS ...
我对比了你的文件系统部分的代码和我的文件系统代码,发现有几个区别:
1.我使用了NAND0_FAT_JOURNAL这个功能,你的没有开启,这个是文件系统日志。
2.你的工程OTG_STM32H7xx.c和USBD_STM32H7xx.c这两个文件是自己修改的,但是我和官方的对比了下,并没有什么不同呀。 yswtxiao 发表于 2020-4-17 11:18
我对比了你的文件系统部分的代码和我的文件系统代码,发现有几个区别:
1.我使用了NAND0_FAT_JOURNAL这 ...
实际工程开启FAT日志后也没有问题,之前帮群友测试过一次。
具体你那里怎么回事,自己查下吧,就不帮忙测了。 eric2013 发表于 2020-4-17 10:52
使用我创建的工程,当前没有一个些板子能用,一些板子不能用的情况。
基于V7的新版RL-USB和RL-FlashFS ...
还有,我们的产品是工业上用的,对文件系统操作量比较大,而且设备都是一天工作十几个小时,2秒钟写一次。经过这样大量跑了几个月,就会大量出现这个问题。
开始还以为时序问题,但是我把时序降低了两倍,还是会有这个问题。 yswtxiao 发表于 2020-4-17 11:21
还有,我们的产品是工业上用的,对文件系统操作量比较大,而且设备都是一天工作十几个小时,2秒钟写一次 ...
整套我们V7,测试一年看看。 eric2013 发表于 2020-4-17 11:25
整套我们V7,测试一年看看。
我之前买过你们103的板子。V7的到时候也整套:$ eric2013 发表于 2020-4-17 11:25
整套我们V7,测试一年看看。
我在keil的组件更新记录里面查看到了这C:\Users\WaynePC\Desktop\{0F62F4DF-C6B2-48AF-91FE-99A19DA9C0F6}_20200417114030.jpg个,应该是有重复文件名的吧。 yswtxiao 发表于 2020-4-17 12:04
我在keil的组件更新记录里面查看到了这个,应该是有重复文件名的吧。
如果不方便使用我们V7板子测试的话
直接这里对接KEIL官方论坛即可:
https://community.arm.com/develo ... /tools/f/keil-forum
就讨论这么多吧。
页:
[1]
2