精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

【英飛凌開發板模塊評測任務大挑戰】看門狗外事使用

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

3.看門狗的使用

這里依然使用mdk的看法環境,使用mdk編譯程序,下載程序

3.1使能看門狗的驅動

1.jpg

3.2看門狗測試函數

/*
程序在空閑鉤子函數內部喂狗操作,如果不喂狗mcu將在5S后自動復位重啟
/
#include
#include
#define WDT_DEVICE_NAME "wdt" /
看門狗設備名稱 /
static rt_device_t wdg_dev; /
看門狗設備句柄 /
static void idle_hook(void)
{
/
在空閑線程的回調函數里喂狗 如果不喂狗設備將重啟*/
// 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; /* 溢出時間,單位:秒 /
/
根據設備名稱查找看門狗設備,獲取設備句柄 /
wdg_dev = rt_device_find(WDT_DEVICE_NAME);
if (!wdg_dev)
{
rt_kprintf("find %s failed!n", WDT_DEVICE_NAME);
return RT_ERROR;
}
/
初始化設備 /
rt_device_init(wdg_dev);
/
設置看門狗溢出時間 /
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;
}
/
設置空閑線程回調函數 /
rt_thread_idle_sethook(idle_hook);
return ret;
}
/
導出到 msh 命令列表中 */
MSH_CMD_EXPORT(wdt_sample, wdt sample);

3.3測試結果

1.jpg

3.4看門狗設備驅動框架的學習

實現看門狗的初始化函數

實現看門狗的控制函數,根據命令類型實現不同的功能

注冊看門狗設備到設備驅動框架

#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) /
設置超時時間 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) /
關閉看門狗 stop watchdog */
struct rt_watchdog_ops;
struct rt_watchdog_device
{
struct rt_device parent;/ 父類基本的設別操作框架 /
const struct rt_watchdog_ops ops;/看門狗獨有的操作函數 /
};
typedef struct rt_watchdog_device rt_watchdog_t;
/*看門狗操作函數

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

    關注

    52

    文章

    8158

    瀏覽量

    146028
  • 控制器
    +關注

    關注

    112

    文章

    16206

    瀏覽量

    177421
  • 看門狗
    +關注

    關注

    10

    文章

    559

    瀏覽量

    70746
  • CMD命令
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8300
  • RT-Thread
    +關注

    關注

    31

    文章

    1273

    瀏覽量

    39924
收藏 人收藏

    評論

    相關推薦

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

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

    什么是看門狗電路

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

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

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

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

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立看門狗
    的頭像 發表于 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。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當計數器達到給定
    發表于 11-09 17:17 ?8425次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

    uC/OS-II 系統的多任務看門狗設計

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

    基于STM32、FreeRTOS 實現硬件看門狗+軟件看門狗監測多任務的方法

    基于STM32、FreeRTOS實現硬件看門狗+軟件看門狗監測多任務的方法
    的頭像 發表于 03-12 10:11 ?9309次閱讀

    MCU獨立看門狗與窗口看門狗的區別

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

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

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

    FreeRTOS使用看門狗的步驟

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

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

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

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

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

    英飛凌開發板模塊評測任務挑戰

    ?RT-Thread 官方特聯合合作伙伴發起開發板評測任務挑戰活動,讓開發者小伙伴們互相協作,對開發板
    的頭像 發表于 04-11 09:05 ?866次閱讀

    什么是看門狗,工業路由器看門狗技術的功能優勢

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

    MCU硬件看門狗+軟件看門狗監測多任務的思路

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