chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

【EK-RA6E2開發(fā)指南】WDT實踐

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

掃碼添加小助手

加入工程師交流群

1 RT-Thread 的WDT簡介

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

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

WDT相關接口如下所示:

函數(shù)描述
rt_device_find()根據(jù)看門狗設備設備名稱查找設備獲取設備句柄
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、根據(jù)設備名稱 “wdt” 查找設備獲取設備句柄。

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

3、啟動看門狗。

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

2.1 RA6E2 WDT配置

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

  • FSP配置WDT

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

1.png

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

接下來需要配置WDT的參數(shù)。

2.png

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

這里可以設置WDT的參數(shù)。

  • 使能WDT

3.png

2.2 代碼實現(xiàn)

核心代碼如下:

#include < rtthread.h >
#include < rtdevice.h >
#define WDT_DEVICE_NAME    "wdt"    /* 看門狗設備名稱 */
static rt_device_t wdg_dev;         /* 看門狗設備句柄 */
static void idle_hook(void)
{
    /* 在空閑線程的回調函數(shù)里喂狗 */
    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);

    /* 根據(jù)設備名稱查找看門狗設備,獲取設備句柄 */
    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;
    }
    /* 設置空閑線程回調函數(shù) */
    rt_thread_idle_sethook(idle_hook);
    return ret;
}
/* 導出到 msh 命令列表中 */
MSH_CMD_EXPORT(wdt_sample, wdt sample);

2.3 測試

編譯下載。

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

4.png

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

5.png

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

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

    關注

    10

    文章

    602

    瀏覽量

    72352
  • 定時器
    +關注

    關注

    23

    文章

    3347

    瀏覽量

    120901
  • RT-Thread
    +關注

    關注

    32

    文章

    1496

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    EK-RA6E2開發(fā)指南】ADC獲取電壓值

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

    EK-RA6E2開發(fā)指南】DAC設置電壓值

    RA6E2有片上DAC外設,總共有兩路DAC輸出通道,每路的分辨率可配置為12位, 這兩個通道之間互不影響,每個通道都可以使用ELC功能可外部觸發(fā)或者進行與ADC單元1的同步轉換。
    的頭像 發(fā)表于 09-23 18:16 ?1591次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發(fā)指南</b>】DAC設置電壓值

    EK-RA6E2開發(fā)指南】RTC實踐

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

    EK-RA2E2-快速入門指南

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

    EK-RA2E1 – 快速入門指南

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

    EK-RA6M2– 快速入門指南

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

    EK-RA6E2v1 – 用戶手冊

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

    EK-RA6E2– 快速入門指南

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

    EK-RA4E2– 快速入門指南

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

    EK-RA6E2v1 – 用戶手冊

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

    EK-RA6E2– 快速入門指南

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

    EK-RA4E2– 快速入門指南

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

    EK-RA2E2-快速入門指南

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

    EK-RA2E1 – 快速入門指南

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

    EK-RA6M2– 快速入門指南

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