我有一个嵌入式系统,有多个 (>20) 任务以不同的优先级运行。我还有看门狗任务,它运行以检查所有其他任务是否没有卡住。我的看门狗正在工作,因为每隔一段时间,它就会重新启动系统,因为任务没有 checkin 。
如何确定哪个任务已终止?
我不能仅仅责怪最旧的任务来踢看门狗,因为它可能已被未产生的更高优先级任务所推迟。
有什么建议吗?
最佳答案
每个任务的看门狗要求较高优先级的任务让出足够的时间,以便所有任务都可以踢看门狗。要确定哪项任务出了问题,您必须找到导致其他任务挨饿的任务。您需要测量看门狗检查之间的任务执行时间,以找到真正的罪魁祸首。
关于debugging - 如何判断哪个任务死了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807017/