现在的位置: 首页 > 综合 > 正文

watch dog不起作用的问题

2018年04月22日 ⁄ 综合 ⁄ 共 686字 ⁄ 字号 评论关闭

具体情况:

                    在mtk6592  kk平台上调试touchpanel驱动中fw upgrade 的时候,发现在mtk6589平台上用的踢狗动作居然不起作用!为此很是疑惑,抓取开机串口log 发现

主要原因:

                                       watch dog thread需要设备驱动加载完成后,才开始init ,故在watch dog thread之前的所有踢狗动作,都没有效果,但是不会报错,LOG如下,平台也没有告知原因阿,我只是等到30s左右,系统因为没有喂狗重启了,才知道watch dog没起作用

watch dog 相关log:

watch dog 超时:

touchpanel 在kernel起来大约4.5秒时候开始probe:

而watch dog thread init在6.5s的时候才姗姗来迟:

解决方法:

                  和平台技术沟通,他们在92 kk 的平台上watch dog线程在驱动设备加载时候还没有开始执行,其重要的开启watch dog thread函数start_kicker();在设备驱动完成之后才调用的!他建议我在watch dog init 之后开一个线程来单独做fw upgrade ,为此我在如下地方添加线程

watch dog init 之后添加线程:

我的线程code:

总结:

              1,平台的kernel加载总是在变化

              2,kernel中不能用阻塞式函数影响进程,可以单独开一个线程来完成

              3,需要了解kernel整个加载模块的顺序

抱歉!评论已关闭.