环境:ESP-IDF 4.4, 硬件:ESP32-S3-USB-OTG,插入TF卡,TF卡为fat文件系统
具体操作: 根据给定的目录名称列举目录下(不递归)的目录及文件;
TF卡里面的根目录下有两个目录
/-
未知
DIR230325_0925_未知车牌
两个子目录里面都有同样的5个文件
GBT19056_未知车牌_2100.VDR
GBT19056_未知车牌_2200.VDR
GBT19056_未知车牌_2300.VDR
GBT19056_未知车牌_2400.VDR
GBT19056_未知车牌_2500.VDR
在列举"未知"目录一切正常;
在列举"DIR230325_0925_未知车牌"目录时候,会阻塞导致
task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
经过追踪vfs_fat_readdir_r 最后一次调用已经通过
if (fat_dir->filinfo.fname[0] == 0) {
// end of directory
ESP_LOGI(TAG, "vfs_fat_readdir_r end of directory");
*out_dirent = NULL;
return 0;
}
返回,经过这个之后就会触发
task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
可能是 readdir 长时间运行导致看门狗未及时置位。
1. 将看门狗的触发时间调长
2. 将看门狗关闭
3. 将 readdir 任务优化,并穿插 vTaskDelay
1. 将看门狗的触发时间调长
2. 将看门狗关闭
3. 将 readdir 任务优化,并穿插 vTaskDelay
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
可能是 readdir 长时间运行导致看门狗未及时置位。
1. 将看门狗的触发时间调长
2. 将看门狗关闭
3. 将 readdir 任务优化,并穿插 vTaskDelay
请问:关于调整主任务看门狗时间及关闭的,我找了半天没有确认是哪一个 ;
将 readdir 任务优化,并穿插 vTaskDelay
这个还真没有想到有什么方法,读一个目录在上层如何进行穿插
1. 将看门狗的触发时间调长
2. 将看门狗关闭
3. 将 readdir 任务优化,并穿插 vTaskDelay
请问:关于调整主任务看门狗时间及关闭的,我找了半天没有确认是哪一个 ;
将 readdir 任务优化,并穿插 vTaskDelay
这个还真没有想到有什么方法,读一个目录在上层如何进行穿插
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
你上面的意思是在menuconfig里面进行配置是吗?我以为是可以通过调用接口来动态进行调整
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
经过调整时长测试,结果是一样的,不是时长引起的,而是阻塞引起的。如果是时长引起的话不会每次都是同一个位置 。估计是陷入循环不出来了.能不能查一下代码看一下?
Last edited by iincity on Wed Mar 29, 2023 7:22 am, edited 1 time in total.
Re: 在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
看门狗时间延长能成功获取到文件吗?还是写了个死循环,卡死在里面了
不建议采用中文路径
不建议采用中文路径
Who is online
Users browsing this forum: Google [Bot] and 149 guests