RL-FlashFs 调用fclose fopen等函数会关中断吗?
RTX5系统,用了RL-FlashFs实时存储数据,10ms存储一次,存储2分钟后,关闭当前文件,新建另外一个文件,继续存储,发现在这个换文件的过程中有数据丢失。存储数据流程如下:IO口产生中断(2ms一次中断),中断内发送信号量,数据读取任务获取信号量读取数据,5次以后通知数据存储任务存储数据,2分钟后关闭当前文件,新建一个文件继续存储数据。关闭当前文件、新建新文件这个过程持续大概5ms,中间IO口中断(2ms一次)不工作,不知道是不是这个过程中关闭了中断?
这个过程没有开关中断问题。
可以考虑采集都2分钟后,统一写入试试。 eric2013 发表于 2021-4-23 08:03
这个过程没有开关中断问题。
可以考虑采集都2分钟后,统一写入试试。
感谢硬汉哥的建议,我发现把SD卡格式化以后,这种丢数据的情况会缓解,随着数据存储量增加,还是会出现这种情况,就是有点不太理解关闭、新建文件既然不涉及到开关中断的问题,那么IO口的中断应该能及时响应才对,IO口中断应该不受影响呀 wling597074509 发表于 2021-4-23 08:38
感谢硬汉哥的建议,我发现把SD卡格式化以后,这种丢数据的情况会缓解,随着数据存储量增加,还是会出现这 ...
这个得排查下,你可以先换个卡试试。
正常不该出现这种问题。得排查下,锁定下问题方向了。 eric2013 发表于 2021-4-24 11:22
这个得排查下,你可以先换个卡试试。
正常不该出现这种问题。得排查下,锁定下问题方向了。
换了卡也是这样,我发现问题可能在IO中断处理函数里发信号量的原因,我把采样函数放到IO口中断里,不在任务里等待信号量再采样,IO口中断可以一直及时响应,关闭文件再新建文件的过程还是会丢数据,但这应该是我程序逻辑的问题了。
页:
[1]