debugging - 如何判断哪个任务死了?

标签 debugging embedded watchdog

我有一个嵌入式系统,有多个 (>20) 任务以不同的优先级运行。我还有看门狗任务,它运行以检查所有其他任务是否没有卡住。我的看门狗正在工作,因为每隔一段时间,它就会重新启动系统,因为任务没有 checkin 。

如何确定哪个任务已终止?

我不能仅仅责怪最旧的任务来踢看门狗,因为它可能已被未产生的更高优先级任务所推迟。

有什么建议吗?

最佳答案

每个任务的看门狗要求较高优先级的任务让出足够的时间,以便所有任务都可以踢看门狗。要确定哪项任务出了问题,您必须找到导致其他任务挨饿的任务。您需要测量看门狗检查之间的任务执行时间,以找到真正的罪魁祸首。

关于debugging - 如何判断哪个任务死了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807017/

相关文章:

ios - 将 iOS 应用程序调试到 iOS 设备时如何修复安全错误

debugging - 按时间顺序对 Safari 调试器网络选项卡进行排序

.net - 调试错误Appcrash Server 2008和Windows 7 C0000005 C0000096

python - 创建文件夹时使用 Python 看门狗库查看多个事件

sockets - 看门狗监视 UNIX 域套接字,根据特定内容触发事件

javascript - 有没有办法在调试 JavaScript 时更改变量值?

C:删除新行/空终止输入字符串

linux - 访问 GPIO 时出现段错误

c++ - 如何确定CRC16初始校验和,因此校验和为零

linux - 如何防止看门狗消息淹没 dmesg