0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于RockPi 4A单板Linux 4.4内核介绍RK3399看门狗的调试方法

xCb1_yikoulinux 来源:一口Linux 作者:小田BSP 2022-05-12 15:08 次阅读

本文基于RockPi 4A单板Linux 4.4内核介绍RK3399看门狗(watchdog)的调试方法。

一、驱动文件

RK3399 watchdog用的是新思(Synopsys)的IP,在watchdog驱动程序加载时,会注册misc设备,节点为/dev/watchdog

驱动文件:drivers/watchdog/dw_wdt.c

二、DTS配置

配置文件:
arch/arm64/boot/dts/rockchip/rk3399.dtsi

watchdog具体配置如下:

watchdog@ff848000 {
        compatible = "snps,dw-wdt";
        reg = <0x0 0xff848000 0x0 0x100>; ## watchdog寄存器基地址和映射长度
        clocks = <&cru PCLK_WDT>; ## watchdog时钟
        interrupts =  120 IRQ_TYPE_LEVEL_HIGH 0>; ## watchdog中断号和触发方式
};

三、调试方法

1、关闭看门狗

echo A > watchdog

写入除大写V以外的任意字符,不再喂狗,一段时间后系统会重启。

## drivers/watchdog/watchdog_dev.c
/*
 *  watchdog_write: writes to the watchdog.
 *  A write to a watchdog device is defined as a keepalive ping.
 *  Writing the magic 'V' sequence allows the next close to turn
 *  off the watchdog (if 'nowayout' is not set).
 */

static ssize_t watchdog_write(struct file *file, const char __user *data,
                        size_t len, loff_t *ppos)
{
    ...
}

例:

## 关闭看门狗后,等待一段时间后重启
root@linaro-alip:/dev# echo A > watchdog
[ 1502.302824] dw_wdt: unexpected close, system will reboot soon
root@linaro-alip:/dev# DDR Version 1.20 20190314  ## 系统重启
In
soft reset

2、打开卡门狗

echo V > watchdog

写入大写V,继续喂狗,系统不再重启。

例:

## 打开看门狗
root@linaro-alip:/dev# echo V > watchdog
root@linaro-alip:/dev#

3、CONFIG_WATCHDOG_NOWAYOUT

watchdog驱动程序中,需要关注宏CONFIG_WATCHDOG_NOWAYOUT。使用如下:

static bool nowayout = WATCHDOG_NOWAYOUT;
module_param(nowayout, bool, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started "
         "(default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");

如果配置了CONFIG_WATCHDOG_NOWAYOUT,通过echo命令写入任何字符,都不会关闭喂狗。

root@ubuntu:/home/run/code/rockchip-bsp/kernel/arch/arm64/configs# git diff rockchip_linux_defconfig
diff --git a/arch/arm64/configs/rockchip_linux_defconfig b/arch/arm64/configs/rockchip_linux_defconfig
index cfbc7774a15f..80265bdcd598 100644
--- a/arch/arm64/configs/rockchip_linux_defconfig
+++ b/arch/arm64/configs/rockchip_linux_defconfig
 CONFIG_WATCHDOG=y
 CONFIG_DW_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
 CONFIG_MFD_CROS_EC=y

例:

## 写入任何字符,都不会关闭喂狗
root@linaro-alip:~# echo A > watchdog
root@linaro-alip:~#

注:

使用./build/mk-kernel.sh rockpi4a编译内核时,即使修改了rockchip_linux_defconfig文件,编译时,相关配置也不会生效。需要在编译前make distclean或删除内核根目录下的.config文件后,重新编译内核。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    558

    浏览量

    70722
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208804

原文标题:Linux驱动之watchdog

文章出处:【微信号:yikoulinux,微信公众号:一口Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Sitara AM6442 RTI看门狗调试

    电子发烧友网站提供《Sitara AM6442 RTI看门狗调试.pdf》资料免费下载
    发表于 08-27 11:26 0次下载
    Sitara AM6442 RTI<b class='flag-5'>看门狗</b><b class='flag-5'>调试</b>

    LM75A数字温度传感器和热看门狗数据表

    电子发烧友网站提供《LM75A数字温度传感器和热看门狗数据表.pdf》资料免费下载
    发表于 08-14 09:48 0次下载
    LM75<b class='flag-5'>A</b>数字温度传感器和热<b class='flag-5'>看门狗</b>数据表

    Firefly-RK3399产品规格书

    Firefly-RK3399产品规格书
    发表于 07-16 10:50 3次下载

    【GD32F470紫藤派开发板使用手册】第七讲 FWDG-看门狗实验

    通过本实验主要学习以下内容: 独立看门狗的原理 独立看门狗功能介绍 实现独立看门狗功能
    的头像 发表于 05-11 10:13 884次阅读
    【GD32F470紫藤派开发板使用手册】第七讲 FWDG-<b class='flag-5'>看门狗</b>实验

    【GD32H757Z海棠派开发板使用手册】第七讲 FWDG-看门狗实验

    通过本实验主要学习以下内容: 独立看门狗的原理 独立看门狗功能介绍 实现独立看门狗功能
    的头像 发表于 05-10 09:37 622次阅读
    【GD32H757Z海棠派开发板使用手册】第七讲 FWDG-<b class='flag-5'>看门狗</b>实验

    软件看门狗和硬件看门狗的区别

    软件看门狗和硬件看门狗都是用于监控系统崩溃的工具,它们的作用是在系统出现故障或异常情况时自动恢复系统。  软件看门狗是一种程序,运行在操作系统中,通过定时检测系统是否正常运行来判断系统是否崩溃。如果
    的头像 发表于 04-16 15:10 910次阅读

    TLF35584中集成的看门狗工作应用案例

    看门狗输入引脚 WDI 具有集成的下拉电流 IWDI 。看门狗输入 WDI 可以在“Closed Window”内或随后的“Open Window”期间转换为高电平。
    发表于 03-18 11:27 3566次阅读
    TLF35584中集成的<b class='flag-5'>看门狗</b>工作应用案例

    调试模式下如何调试看门狗

    大家在调试GD32 MCU系统的时候,若开了看门狗外设,是否会碰到进入调试模式看门狗就会咬造成无法调试
    的头像 发表于 02-23 09:30 1197次阅读
    <b class='flag-5'>调试</b>模式下如何<b class='flag-5'>调试看门狗</b>?

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植到RK3399上,以支持硬件的驱动和功能。本文将
    的头像 发表于 01-08 09:56 1034次阅读

    RK3399硬件设计指南

    RK3399是一款基于ARM架构的高性能处理器,常用于嵌入式系统和单板计算机。在进行RK3399硬件设计时,需要考虑多个方面,包括电源、封装、信号传输、外设接口等。本文将详细介绍
    的头像 发表于 12-28 10:59 1451次阅读

    芯知识 | 语音芯片中的声音播放提示IC内置看门狗的作用介绍

    随着科技的不断发展,语音芯片在各个领域的应用越来越广泛。其中,声音播放提示IC作为语音芯片的重要组成部分,其功能和性能的提升对于产品的用户体验和稳定性至关重要。而在声音播放提示IC中,内置看门狗
    的头像 发表于 12-20 08:40 484次阅读
    芯知识 | 语音芯片中的声音播放提示IC内置<b class='flag-5'>看门狗</b>的作用<b class='flag-5'>介绍</b>

    STM32的看门狗原理和示例代码

    看门狗基础:STM32微控制器上的看门狗主要有两种类型:独立看门狗(IWDG)和窗口看门狗(WWDG),这两者都是用于监控系统运行状态的机制,但它们在实现和应用上有一些区别:独立
    的头像 发表于 12-01 08:00 1864次阅读
    STM32的<b class='flag-5'>看门狗</b>原理和示例代码

    RK3399 Ubuntu通过Python实现录音和播放功能

    本文基于IDO-SBC3968Ubuntu系统通过Python脚本实现录音和播放功能。IDO-SBC3968采用RK3399国产六核64位CPU高性能处理器,支持4KHDMI2.0显示,接口丰富
    的头像 发表于 11-25 08:32 713次阅读
    <b class='flag-5'>RK3399</b> Ubuntu通过Python实现录音和播放功能

    RT-Thread Nano入门:独立看门狗(IWDT)

    本文主要介绍怎么用RT-Thread Nano实现独立看门狗IWDT驱动,创建一个喂狗线程,实现定时喂狗功能。
    的头像 发表于 11-22 11:04 2122次阅读
    RT-Thread Nano入门:独立<b class='flag-5'>看门狗</b>(IWDT)

    什么是模拟看门狗?模拟看门狗有什么用处?

    看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分stm32中都存在两种类型的看门狗,Independent watchdog (IWDG)独立看门狗和Window watchdog (WWDG)窗口
    的头像 发表于 11-22 09:40 1652次阅读
    什么是模拟<b class='flag-5'>看门狗</b>?模拟<b class='flag-5'>看门狗</b>有什么用处?