wling597074509 发表于 2021-4-22 16:03:59

RL-FlashFs 调用fclose fopen等函数会关中断吗?

RTX5系统,用了RL-FlashFs实时存储数据,10ms存储一次,存储2分钟后,关闭当前文件,新建另外一个文件,继续存储,发现在这个换文件的过程中有数据丢失。存储数据流程如下:IO口产生中断(2ms一次中断),中断内发送信号量,数据读取任务获取信号量读取数据,5次以后通知数据存储任务存储数据,2分钟后关闭当前文件,新建一个文件继续存储数据。
关闭当前文件、新建新文件这个过程持续大概5ms,中间IO口中断(2ms一次)不工作,不知道是不是这个过程中关闭了中断?

eric2013 发表于 2021-4-23 08:03:37

这个过程没有开关中断问题。

可以考虑采集都2分钟后,统一写入试试。

wling597074509 发表于 2021-4-23 08:38:36

eric2013 发表于 2021-4-23 08:03
这个过程没有开关中断问题。

可以考虑采集都2分钟后,统一写入试试。

感谢硬汉哥的建议,我发现把SD卡格式化以后,这种丢数据的情况会缓解,随着数据存储量增加,还是会出现这种情况,就是有点不太理解关闭、新建文件既然不涉及到开关中断的问题,那么IO口的中断应该能及时响应才对,IO口中断应该不受影响呀

eric2013 发表于 2021-4-24 11:22:35

wling597074509 发表于 2021-4-23 08:38
感谢硬汉哥的建议,我发现把SD卡格式化以后,这种丢数据的情况会缓解,随着数据存储量增加,还是会出现这 ...

这个得排查下,你可以先换个卡试试。

正常不该出现这种问题。得排查下,锁定下问题方向了。

wling597074509 发表于 2021-4-26 15:45:19

eric2013 发表于 2021-4-24 11:22
这个得排查下,你可以先换个卡试试。

正常不该出现这种问题。得排查下,锁定下问题方向了。

换了卡也是这样,我发现问题可能在IO中断处理函数里发信号量的原因,我把采样函数放到IO口中断里,不在任务里等待信号量再采样,IO口中断可以一直及时响应,关闭文件再新建文件的过程还是会丢数据,但这应该是我程序逻辑的问题了。
页: [1]
查看完整版本: RL-FlashFs 调用fclose fopen等函数会关中断吗?