日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]看門狗的作用是系統(tǒng)CPU正常工作時定時給看門狗喂狗,復位定時器,如果系統(tǒng)出問題,沒有給看門狗喂狗,看門狗就由于超時將CPU復位。

看門狗的作用是系統(tǒng)CPU正常工作時定時給看門狗喂狗,復位定時器,如果系統(tǒng)出問題,沒有給看門狗喂狗,看門狗就由于超時將CPU復位。

系統(tǒng)用初始化后注冊看門狗中斷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);

}

如果系統(tǒng)出問題了,沒有辦法執(zhí)行定時器的回到函數(shù),那么看門狗就產(chǎn)生中斷,執(zhí)行中斷服務程序static irqreturn_t wdog_bark_handler(int irq, void *dev_id),

執(zhí)行panic。 panic("Apps watchdog bark received!");

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉