百方网
百方曝光台
当前位置: 首页 » 行业资讯 » 技术专利 » 正文

单片机看门狗的作用

http://news.byf.com   2017-11-17  来源:百方网 
新闻纠错

看门狗的作用是系统CPU正常工作时定时给看门狗喂狗,复位定时器,如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。

单片机看门狗的作用

系统用初始化后注册看门狗中断request_irq(WDT0_ACCSCSSNBARK_INT, wdog_bark_handler, 0, "apps_wdog_bark", NULL);

和初始化看门狗的超时时间bark time,

__raw_writel(timeout, msm_tmr0_base + WDT0_BARK_TIME);

__raw_writel(timeout + 3*WDT_HZ, msm_tmr0_base + WDT0_BITE_TIME);

复位看门狗,使能看门狗和中断极性。

__raw_writel(1, msm_tmr0_base + WDT0_EN);

__raw_writel(1, msm_tmr0_base + WDT0_RST);

enable_percpu_irq(WDT0_ACCSCSSNBARK_INT, IRQ_TYPE_EDGE_RISING);

并且初始化和启动一个定时器,比如10秒一次,

schedule_delayed_work_on(0, &dogwork_struct, delay_time);

static DECLARE_DELAYED_WORK(dogwork_struct, pet_watchdog_work);

static DECLARE_WORK(init_dogwork_struct, init_watchdog_work);

static struct msm_watchdog_pdata msm_watchdog_pdata = {

.pet_time = 10000,

.bark_time = 11000,

.has_secure = true,

.needs_expired_enable = true,

};

delay_time = msecs_to_jiffies(pdata->pet_time);

schedule_work_on(0, &init_dogwork_struct);

定时器定时时间到了对定时器复位pet dog 和重新启动定时器。

static void pet_watchdog_work(struct work_struct *work)

{

pet_watchdog();

if (enable)

schedule_delayed_work_on(0, &dogwork_struct, delay_time);

}

如果系统出问题了,没有办法执行定时器的回到函数,那么看门狗就产生中断,执行中断服务程序static irqreturn_t wdog_bark_handler(int irq, void *dev_id),

执行panic。 panic("Apps watchdog bark received!");

百方网微信
免责声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议,文章内容仅供参考。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
40.5K电气行业新闻、技术文章投稿QQ:179005781 邮箱:zw@byf.com
本文相关关键词: CPU 看门狗 复位定时器
行业热点
聚焦新型工业化,南存辉委员代表全国工商联作大会发言

聚焦新型工业化,南存辉委员代表全国工商联作大会发言

3月7日上午,全国政协十四届二次会议举行第二次全...[详细]

全国人大代表胡成中:培育新质生产力应助力制造业企业技术升级

全国人大代表胡成中:培育新质生产力应助力制造业企业技术升级

近日,全国人大代表、德力西集团董事局主席胡成中...[详细]

李强总理:深入推入能源革命,加快建设新型能源体系!

李强总理:深入推入能源革命,加快建设新型能源体系!

​国务院总理李强5日在政府工作报告中介绍今年政府...[详细]

关于我们 | 广告服务 | 会员服务 | 隐私申明 | 友情链接 | 联系我们 | 法律顾问 | 网站地图 | 管理制度 (c)2008-2021 BYF All Rights Reserved