wangdunyu 发表于 2023-12-8 20:45:49

文件系统写flash时导致喂狗超时

背景介绍:系统运行时反复报同样的故障,导致不停的记录日志,日志是使用lfs文件系统写到外部flash上的,每一次写日志到外部flash都会导致外部看门狗喂狗超时复位。(大概需要2~3s才能回到喂狗任务)。

解决方法:调用lfs_api_format(void)
{        lfs_unmount( &lfs );
        lfs_format( &lfs, &lfs_cfg );
       lfs_mount( &lfs, &lfs_cfg );}
格式化文件后,在写flash就不会再出现喂狗超时的问题。
想请教一下各位的大佬这是什么原因。

eric2013 发表于 2023-12-9 10:19:40

lfs没怎么用过,不过你说的写入数据导致重启,使用FAT文件系统也容易出现这种问题,写入数据越来越多后,后面写入会比较慢,时间比较长。

wangdunyu 发表于 2023-12-9 12:59:58

eric2013 发表于 2023-12-9 10:19
lfs没怎么用过,不过你说的写入数据导致重启,使用FAT文件系统也容易出现这种问题,写入数据越来越多后,后 ...

感谢,我再测一下时间

2360985396 发表于 2023-12-9 16:16:00

wangdunyu 发表于 2023-12-9 12:59
感谢,我再测一下时间

写flash的时候 喂狗频率延长 测试下最大的写入时间需要多少 对应相应的喂狗时间

wangdunyu 发表于 2023-12-22 15:21:55

2360985396 发表于 2023-12-9 16:16
写flash的时候 喂狗频率延长 测试下最大的写入时间需要多少 对应相应的喂狗时间

最大写入时间是6.4s,但是SPI在写FLASH时会有阻塞延时,阻塞时可以回到喂狗任务。目前的发现的解决办法是调用lfs_format格式化外部flash后,重新挂载文件系统,喂狗超时导致的重启问题可以得到修复,但是具体重启原因没有查到。

xcj2017 发表于 2024-1-27 17:56:07

这个应该在Flash操作时候喂狗吧。
页: [1]
查看完整版本: 文件系统写flash时导致喂狗超时