不懂,完全看不懂 |
多半是: 程序中有死待某个标记,用C写的程序常有此问题(因为按正常逻辑及状况,这个标记一定会出现,程序未考虑循特殊情况的出现)。 比如:某个硬件在异常状态下给不出标记时,程序又死等它出现。 我一般比较注意有死等某个标记地方,在死等的语句中插入时间限制(时间由中间程序控制,计时与死待无关),等不到标记,但时间到了就跳出。 如何找到死等的点呢? 给程序运行加追踪器: 比如:程序有10个步骤或任务或其它什么,用一个寄存器R_RUN,运行到任务1就让R_RUN=1,运行到任务N就让R_RUN=N。也就是说只要知道R_RUN的值就能知道程序运行到什么任务(地方)。 当看门狗复位动作时,运行一个输出R_RUN的程序(写一个显示程序或其它可以输出的方式) 这样你就知道,程序死在什么地方了。任务分得越细越易找到问题。 |