在主任务里面使用readdir导致task_wdt: Task watchdog got triggered!!!
Posted: Mon Mar 27, 2023 6:32 am
环境: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:
具体操作: 根据给定的目录名称列举目录下(不递归)的目录及文件;
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: