RTThread 使用WATCHDOG流程

使用WATCHDOG流程如下
##1、在cubemx中打开IWDG
在这里插入图片描述
kconfig中添加
menuconfig BSP_USING_WDT
bool “Enable Watchdog Timer”
select RT_USING_WDT
default y

ENV中选择

在这里插入图片描述
使用官方例程即可

/*
 * 程序清单:这是一个独立看门狗设备使用例程
 * 例程导出了 wdt_sample 命令到控制终端
 * 命令调用格式:wdt_sample wdt
 * 命令解释:命令第二个参数是要使用的看门狗设备名称,为空则使用例程默认的看门狗设备。
 * 程序功能:程序通过设备名称查找看门狗设备,然后初始化设备并设置看门狗设备溢出时间。
 *           然后设置空闲线程回调函数,在回调函数里会喂狗。
*/

#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 ");
}

static int wdt_sample(int argc, char *argv[])
{
    rt_err_t ret = RT_EOK;
    rt_uint32_t timeout = 1;        /* 溢出时间,单位:秒 */
    char device_name[RT_NAME_MAX];

    /* 判断命令行参数是否给定了设备名称 */
    if (argc == 2)
    {
        rt_strncpy(device_name, argv[1], RT_NAME_MAX);
    }
    else
    {
        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_SET_TIMEOUT, &timeout);
    if (ret != RT_EOK)
    {
        rt_kprintf("set %s timeout 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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7是一种流行的Linux操作系统,由于其稳定性和安全性,被广泛用于服务器和网络环境。Watchdog是一个用于监控系统状态并在出现故障时执行相应操作的工具。CSDN是一个知名的技术社区,提供大量的技术文档和学习资源。 要在CentOS 7上使用Watchdog,首先需要确保系统已经连接到互联网。然后按照以下步骤操作: 1. 在终端中使用root权限登录CentOS 7服务器。 2. 更新系统软件包列表,以获取最新的可用软件包信息。可以使用以下命令进行更新: `yum update -y` 3. 安装Watchdog软件包。在终端中执行以下命令: `yum install watchdog -y` 4. 安装完成后,启动Watchdog服务并设置开机自启动。使用以下命令启动服务: `systemctl start watchdog` 使用以下命令设置开机自启动: `systemctl enable watchdog` 5. 确认Watchdog是否正确运行。可以使用以下命令检查服务状态: `systemctl status watchdog` 如果服务正在运行,则会显示"active (running)"的状态。 6. 使用CSDN或其他相关资源,学习如何配置Watchdog以监控系统状态并执行相应操作,例如重新启动系统或发送警报通知。具体配置方式会根据需求而有所不同,可以根据自己的实际需求进行配置。 以上是在CentOS 7上使用Watchdog的基本步骤。希望这些信息可以帮助您成功配置和使用Watchdog来监控您的系统。如需进一步了解和使用Watchdog,您可以参考CSDN等资源,以便更好地理解和应用该工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值