0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【英飛凌開發(fā)板模塊評測任務(wù)大挑戰(zhàn)】看門狗外事使用

冬至子 ? 來源:chejia12 ? 作者:chejia12 ? 2023-08-11 17:08 ? 次閱讀

3.看門狗的使用

這里依然使用mdk的看法環(huán)境,使用mdk編譯程序,下載程序

3.1使能看門狗的驅(qū)動

1.jpg

3.2看門狗測試函數(shù)

/*
程序在空閑鉤子函數(shù)內(nèi)部喂狗操作,如果不喂狗mcu將在5S后自動復位重啟
/
#include
#include
#define WDT_DEVICE_NAME "wdt" /
看門狗設(shè)備名稱 /
static rt_device_t wdg_dev; /
看門狗設(shè)備句柄 /
static void idle_hook(void)
{
/
在空閑線程的回調(diào)函數(shù)里喂狗 如果不喂狗設(shè)備將重啟*/
// rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_KEEPALIVE, NULL);
// rt_kprintf("feed the dog!n ");
}
/ 看門狗測試 /
int wdt_sample(void)
{
rt_err_t ret = RT_EOK;
rt_uint32_t timeout = 5; /* 溢出時間,單位:秒 /
/
根據(jù)設(shè)備名稱查找看門狗設(shè)備,獲取設(shè)備句柄 /
wdg_dev = rt_device_find(WDT_DEVICE_NAME);
if (!wdg_dev)
{
rt_kprintf("find %s failed!n", WDT_DEVICE_NAME);
return RT_ERROR;
}
/
初始化設(shè)備 /
rt_device_init(wdg_dev);
/
設(shè)置看門狗溢出時間 /
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout);
if (ret != RT_EOK)
{
rt_kprintf("set %s timeout failed!n", WDT_DEVICE_NAME);
return RT_ERROR;
}
/
啟動看門狗 /
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_START, RT_NULL);
if (ret != RT_EOK)
{
rt_kprintf("start %s failed!n", WDT_DEVICE_NAME);
return -RT_ERROR;
}
/
設(shè)置空閑線程回調(diào)函數(shù) /
rt_thread_idle_sethook(idle_hook);
return ret;
}
/
導出到 msh 命令列表中 */
MSH_CMD_EXPORT(wdt_sample, wdt sample);

3.3測試結(jié)果

1.jpg

3.4看門狗設(shè)備驅(qū)動框架的學習

實現(xiàn)看門狗的初始化函數(shù)

實現(xiàn)看門狗的控制函數(shù),根據(jù)命令類型實現(xiàn)不同的功能

注冊看門狗設(shè)備到設(shè)備驅(qū)動框架

#ifndef WATCHDOG_H
#define WATCHDOG_H
#include
/ 命令類型 合計6種 /
#define RT_DEVICE_CTRL_WDT_GET_TIMEOUT (RT_DEVICE_CTRL_BASE(WDT) + 1) /* 獲取超時時間 get timeout(in seconds) /
#define RT_DEVICE_CTRL_WDT_SET_TIMEOUT (RT_DEVICE_CTRL_BASE(WDT) + 2) /
設(shè)置超時時間 set timeout(in seconds) /
#define RT_DEVICE_CTRL_WDT_GET_TIMELEFT (RT_DEVICE_CTRL_BASE(WDT) + 3) /
在重新啟動之前獲取剩余時間 get the left time before reboot(in seconds) /
#define RT_DEVICE_CTRL_WDT_KEEPALIVE (RT_DEVICE_CTRL_BASE(WDT) + 4) /
喂狗 refresh watchdog /
#define RT_DEVICE_CTRL_WDT_START (RT_DEVICE_CTRL_BASE(WDT) + 5) /
開啟看門狗 start watchdog /
#define RT_DEVICE_CTRL_WDT_STOP (RT_DEVICE_CTRL_BASE(WDT) + 6) /
關(guān)閉看門狗 stop watchdog */
struct rt_watchdog_ops;
struct rt_watchdog_device
{
struct rt_device parent;/ 父類基本的設(shè)別操作框架 /
const struct rt_watchdog_ops ops;/看門狗獨有的操作函數(shù) /
};
typedef struct rt_watchdog_device rt_watchdog_t;
/*看門狗操作函數(shù)

  1. 看門狗初始化函數(shù)
  2. 看門狗控制函數(shù),根據(jù) 函數(shù)cmd 的類型控制看門狗
    */
    struct rt_watchdog_ops
    {
    rt_err_t (*init)(rt_watchdog_t *wdt);//初始化函數(shù)
    rt_err_t (*control)(rt_watchdog_t *wdt, int cmd, void *arg);//看門狗控制函數(shù)
    };
    / 看門狗外設(shè)設(shè)備注冊函數(shù) /
    rt_err_t rt_hw_watchdog_register(rt_watchdog_t *wdt,
    const char *name,
    rt_uint32_t flag,
    void data);
    #endif /
    WATCHDOG_H */
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 驅(qū)動器
    +關(guān)注

    關(guān)注

    51

    文章

    7998

    瀏覽量

    145013
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175365
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    554

    瀏覽量

    70572
  • CMD命令
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    8228
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1239

    瀏覽量

    39433
收藏 人收藏

    評論

    相關(guān)推薦

    STM32中的獨立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立看門狗
    的頭像 發(fā)表于 02-20 17:47 ?2508次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    什么是看門狗電路

    看門狗電路 看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統(tǒng)需要出讓一個定時器資源,這在許多系統(tǒng)中很
    發(fā)表于 10-21 01:40 ?8071次閱讀

    stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么

    本文為您講解STM看門狗時間計算(時限)與頻率計算,獨立看門狗和窗口看門狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8663次閱讀

    什么是stm32看門狗?獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立看門狗
    的頭像 發(fā)表于 11-06 11:48 ?2.7w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數(shù)器達到給定
    發(fā)表于 11-09 17:17 ?8292次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

    uC/OS-II 系統(tǒng)的多任務(wù)看門狗設(shè)計

    在嵌入式系統(tǒng)中為提高微型機系統(tǒng)的可靠性和安全性, 常用的方法就是使用看門狗。看門狗分硬件看門狗和軟件看門狗。硬件看門狗采用
    發(fā)表于 11-30 06:39 ?625次閱讀

    基于STM32、FreeRTOS 實現(xiàn)硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的方法

    基于STM32、FreeRTOS實現(xiàn)硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的方法
    的頭像 發(fā)表于 03-12 10:11 ?9056次閱讀

    MCU獨立看門狗與窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。為了滿足更多使用場景,現(xiàn)在很多MCU都集成了兩個看門狗:獨立看門狗
    發(fā)表于 10-28 20:06 ?8次下載
    MCU獨立<b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區(qū)別

    STM32:獨立看門狗、窗口看門狗的配置

    STM32單片機的看門狗有獨立看門狗和窗口看門狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:獨立<b class='flag-5'>看門狗</b>、窗口<b class='flag-5'>看門狗</b>的配置

    FreeRTOS使用看門狗的步驟

    看管后,看門狗會不斷的觀察任務(wù),如果任務(wù)不在指定時間內(nèi)喂狗。那么,定時器到0,然后慌了,ESP32 就自動重啟。注意模擬器沒有實現(xiàn)看門狗
    的頭像 發(fā)表于 09-13 15:42 ?4681次閱讀

    STM32中的獨立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立
    的頭像 發(fā)表于 12-22 16:58 ?1894次閱讀

    STM32中的獨立看門狗和窗口看門狗

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨立看門狗
    的頭像 發(fā)表于 01-30 14:38 ?1216次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    英飛凌開發(fā)板模塊評測任務(wù)挑戰(zhàn)

    ?RT-Thread 官方特聯(lián)合合作伙伴發(fā)起開發(fā)板評測任務(wù)挑戰(zhàn)活動,讓開發(fā)者小伙伴們互相協(xié)作,對開發(fā)板
    的頭像 發(fā)表于 04-11 09:05 ?769次閱讀

    什么是看門狗,工業(yè)路由器看門狗技術(shù)的功能優(yōu)勢

    一個輸入和一個輸出,其中輸入叫做喂狗,輸出一般連接到另外一個部分的復位端。看門狗技術(shù)的核心硬件是看門狗模塊,分為硬件看門狗和軟件看門狗。▍
    的頭像 發(fā)表于 03-27 10:16 ?1629次閱讀
    什么是<b class='flag-5'>看門狗</b>,工業(yè)路由器<b class='flag-5'>看門狗</b>技術(shù)的功能優(yōu)勢

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的思路

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的思路
    的頭像 發(fā)表于 10-24 15:25 ?1656次閱讀
    MCU硬件<b class='flag-5'>看門狗</b>+軟件<b class='flag-5'>看門狗</b>監(jiān)測多<b class='flag-5'>任務(wù)</b>的思路