国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

【EK-RA6E2開發指南】WDT實踐

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2025-09-23 18:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 RT-Thread 的WDT簡介

WDT(Watch Dot timer)即看門狗定時器,其主要作用是當發生軟件故障時可以產生復位信號,使程序復位,其本質是一個計數器。

當看門狗啟動后,計數器開始自動計數,在計數器溢出前如果沒有被復位,計數器溢出就會對 CPU 產生一個復位信號使系統重啟(俗稱 “被狗咬”)。系統正常運行時,需要在看門狗允許的時間間隔內對看門狗計數器清零(俗稱“喂狗“),不讓復位信號產生。如果系統不出問題,程序能夠按時“喂狗”。一旦程序跑飛,沒有“喂狗”,系統“被咬” 復位。

WDT相關接口如下所示:

函數描述
rt_device_find()根據看門狗設備設備名稱查找設備獲取設備句柄
rt_device_init()初始化看門狗設備
rt_device_control()控制看門狗設備
rt_device_close()關閉看門狗設備

關于WDT更詳細的內容,請參看官方手冊:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/watchdog/watchdog

2 WDT使用實例

WDT使用起來很簡單。

1、根據設備名稱 “wdt” 查找設備獲取設備句柄。

2、初始化設備后設置看門狗溢出時間。

3、啟動看門狗。

4、喂狗:設置空閑線程回調函數,在空閑線程回調函數中喂狗。

2.1 RA6E2 WDT配置

接下來配置WDT,只需要簡單配置就可使用。

  • FSP配置WDT

打開RA Smart Configurator,添加WDT的stack。

1.png

[]()[]()[]()Figure 2?1 添加WDT的stack步驟

接下來需要配置WDT的參數。

2.png

[]()[]()[]()Figure 2?2 WDT參數設置

這里可以設置WDT的參數。

  • 使能WDT

3.png

2.2 代碼實現

核心代碼如下:

#include < rtthread.h >
#include < rtdevice.h >
#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 ");
    rt_thread_mdelay(300);
}

int wdt_sample(int argc, char *argv[])
{
    rt_err_t ret = RT_EOK;

    char device_name[RT_NAME_MAX];

    rt_strncpy(device_name, WDT_DEVICE_NAME, RT_NAME_MAX);

    /* 根據設備名稱查找看門狗設備,獲取設備句柄 */
    wdg_dev = rt_device_find(device_name);
    if (!wdg_dev)
    {
        rt_kprintf("find %s failed!n", 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", device_name);
        return -RT_ERROR;
    }
    /* 設置空閑線程回調函數 */
    rt_thread_idle_sethook(idle_hook);
    return ret;
}
/* 導出到 msh 命令列表中 */
MSH_CMD_EXPORT(wdt_sample, wdt sample);

2.3 測試

編譯下載。

如果屏蔽喂狗操作,在終端輸入“wdt_sample”即可進行測試。

4.png

執行wdt_sample,結果如下:(一秒后觸發WDT復位)

5.png

如果定時喂狗,在終端輸入“wdt_sample”即可進行測試。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 看門狗
    +關注

    關注

    10

    文章

    610

    瀏覽量

    72933
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123579
  • RT-Thread
    +關注

    關注

    32

    文章

    1613

    瀏覽量

    44819
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    EK-RA6E2開發指南】ADC獲取電壓值

    RA6E22個ADC單元,每個ADC單元有12位、10位、8位讀取數據的格式可以選擇,在單元0上有13個ADC通道,而在單元1上有16個ADC通道。 ADC單元具有三種掃描方式分別為:單次描模式、連續掃描模式和分組掃描模式,
    的頭像 發表于 09-23 18:15 ?1990次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發指南</b>】ADC獲取電壓值

    EK-RA6E2開發指南】RTC實踐

    RA6E2的RTC(Real Time Clock)外設,實質是一個掉電后還繼續運行的定時器。從定時器的角度來說,相對于GPT外設,要簡單很多 ,只有計時和觸發中斷以及輸入捕獲的功能。RTC外設的特別之處并不在于它的定時功能,而在于它掉電還繼續運行的特性。
    的頭像 發表于 09-23 18:18 ?2222次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發指南</b>】RTC<b class='flag-5'>實踐</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 01-30 18:47 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 02-03 19:08 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發表于 03-13 19:36 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發表于 05-12 19:18 ?0次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發表于 05-12 19:20 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發表于 05-12 19:23 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發表于 06-29 19:10 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發表于 06-29 19:11 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發表于 06-29 19:14 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 07-03 20:12 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 07-04 19:40 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發表于 07-04 20:54 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>

    Renesas EK - RA8D2評估套件快速上手與定制開發指南

    Renesas EK - RA8D2評估套件快速上手與定制開發指南 在嵌入式開發領域,一款好的評估套件能極大地加速開發進程,幫助
    的頭像 發表于 12-26 15:50 ?445次閱讀