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

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

3天内不再提示

AMD-Xilinx MPSoC的Watchdog在Linux中使用的简明教程

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-07 14:15 次阅读

AMD-Xilinx MPSoC的器件里,提供了内置的Watchdog。在Vivado里选择Watchdog,并在设备树里使能Watchdog,还不能在Linux中正常使用。

pmu-firmware修改

如果要在Linux中使用Watchdog,需要在project-spec/meta-user/recipes-bsp/embeddedsw/pmu-firmware_%.bbappend中添加如下内容:

2021.1以前的版本:

#pmu-firmware_%.bbappendcontent
YAML_COMPILER_FLAGS_append="-DENABLE_EM-DENABLE_SCHEDULER"

2022.1及以后的版本:

#pmu-firmware_%.bbappendcontent
YAML_COMPILER_FLAGS:append="-DENABLE_EM-DENABLE_SCHEDULER"

Devicetree

检查Devicetree,确保其中的status为"okay", 也有属性reset-on-timeout。

watchdog@fd4d0000{
clocks=<0x03 0x4b>;
compatible="cdns,wdt-r1p2";
interrupt-parent=<0x04>;
interrupts=<0x00 0x71 0x01>;
phandle=<0x76>;
reg=<0x00 0xfd4d0000 0x00 0x1000>;
reset-on-timeout;
status="okay";
timeout-sec=<0x3c>;
};

watchdog@ff150000{
clocks=<0x03 0x70>;
compatible="cdns,wdt-r1p2";
interrupt-parent=<0x04>;
interrupts=<0x00 0x34 0x01>;
phandle=<0x77>;
reg=<0x00 0xff150000 0x00 0x1000>;
status="okay";
timeout-sec=<0x0a>;
};

启动信息

使用命令“dmesg”检查启动信息,有如下信息。

#dmesg-c|grepwatchdog
[539.845269]watchdog:watchdog0:watchdogdidnotstop!
[691.897271]watchdog:watchdog1:watchdogdidnotstop!
[702.136679]cdns-wdtff150000.watchdog:Watchdogtimedout.Internalresetnotenabled

通过设备节点控制Watchdog

通过设备节点“/dev/watchdog0”可以控制Watchdog。

执行命令“echo s > /dev/watchdog0”,能启动Watchdog,但是没有清狗操作。时间久了,单板会自动重启动。

#echos>/dev/watchdog0
[154.773229]watchdog:watchdog0:watchdogdidnotstop!

#dmesg-c|tail-n20
[154.773229]watchdog:watchdog0:watchdogdidnotstop!

#dmesg-c|tail-n20

#cat/proc/uptime
193.70738.72
#XilinxZynqMPFirstStageBootLoader
Release2022.1Apr112022-09:29:50
NOTICE:BL31:v2.6(release):v1.1-9207-g67ca59c67

执行命令“echo 'V' > /dev/watchdog0”,能停止Watchdog,单板再也不会自动重启动。

#echos>/dev/watchdog0&&cat/proc/uptime

[1850.817370]watchdog:watchdog0:watchdogdidnotstop!
1850.697364.03

#sleep1

#echo'V'>/dev/watchdog0&&cat/proc/uptime
1852.407370.84

#cat/proc/uptime
1887.117509.61
#cat/proc/uptime
1971.677847.72
#cat/proc/uptime
2159.968600.54

通过应用程序控制Watchdog

Linux也提供了应用程序watchdog控制Watchdog,启动Watchdog并清狗。下面是启动Watchdog的示例。如果由于特殊原因,应用程序watchdog异常退出,就会导致单板复位。下面的例子中,使用kill命令杀死了应用程序watchdog的进程,导致单板复位。

#watchdog-T10-t3/dev/watchdog0
#ps-A|grepwatchdog
95?00:00:00watchdogd
1159?00:00:00watchdog

#cat/proc/uptime
1880.187481.78

#cat/proc/uptime
1895.657543.65

#kill-91159
#[1904.549498]watchdog:watchdog0:watchdogdidnotstop!

#XilinxZynqMPFirstStageBootLoader
Release2022.1Apr112022-09:29:50
NOTICE:BL31:v2.6(release):v1.1-9207-g67ca59c67

通过系统脚本启动Watchdog并清狗

Linux也提供系统脚本/etc/init.d/watchdog-init控制Watchdog。
系统脚本/etc/init.d/watchdog-init也使用了应用程序控制Watchdog。如果使用kill命令杀死应用程序watchdog的进程,也会导致单板复位。

#/etc/init.d/watchdog-initstart&&cat/proc/uptime
Sethealthybit
/etc/init.d/watchdog-init:line92:/sys/firmware/zynqmp/health_status:Permissiondenied
StartingWDT
2199.548758.78

#ps-A|grepwatchdog
95?00:00:00watchdogd
1110?00:00:00watchdog

#sleep5

#/etc/init.d/watchdog-initstop&&cat/proc/uptime
StopingWDT
2204.628779.08

#cat/proc/uptime
2299.329157.71

#cat/proc/uptime
2628.2210472.73

参考文档

Cadence WDT Driver

测试单板

KV260 2022.1 BSP


审核编辑:汤梓红

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

    关注

    25

    文章

    5201

    浏览量

    132638
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119374
  • MPSoC
    +关注

    关注

    0

    文章

    194

    浏览量

    24111
收藏 人收藏

    评论

    相关推荐

    Protel DXP简明教

    Protel DXP简明教程电路设计自动化( Electronic Design Automation ) EDA 指的就是将电路设计中各种工作交由计算机来协助完成。如电路图( Schematic
    发表于 12-09 15:13

    DSP中断设置简明教

    DSP中断设置简明教程 from hellodsp
    发表于 10-24 20:51

    proteus简明教程下载

    本帖最后由 tzshlyt 于 2012-11-24 19:10 编辑 proteus简明教程电驴下载
    发表于 11-24 19:06

    protel简明教

    protel简明教
    发表于 01-13 13:47

    vivado简明教

    本帖最后由 burkfly 于 2014-1-14 22:26 编辑 vivado简明教程,初学者有用!
    发表于 01-14 22:22

    PROTEL简明教

    简明教程希望对你有用
    发表于 03-27 11:11

    Vivado 简明教

    Vivado 简明教
    发表于 05-07 11:25

    ZEMAX光学辅助设计简明教

    ZEMAX光学辅助设计简明教程 ZEMAX光学辅助设计简明教
    发表于 10-30 17:57 0次下载

    电工学简明教程习题+答案

    电工学简明教程习题+答案高清pdf版本电工学简明教程习题+答案高清pdf版本
    发表于 02-25 14:13 16次下载

    Protel99简明教

    本文档详细的介绍了Protel99使用的简明教
    发表于 08-30 17:02 0次下载

    Altium-Designer-10简明教

    Altium-Designer-10简明教
    发表于 12-16 22:13 0次下载

    基于DSP中断设置简明教

    基于DSP中断设置简明教
    发表于 10-23 14:28 5次下载
    基于DSP中断设置<b class='flag-5'>简明教</b>程

    AMD Xilinx K26从eMMC启动Ubuntu

    AMD Xilinx K26支持Ubuntu。从ubuntu amd-xilinx下载映像后,把image烧入到TF卡
    的头像 发表于 07-10 15:58 515次阅读

    电磁兼容简明教程(4)​共模干扰与差模干扰

    电磁兼容简明教程(4)​共模干扰与差模干扰
    的头像 发表于 12-05 15:04 380次阅读
    电磁兼容<b class='flag-5'>简明教</b>程(4)​共模干扰与差模干扰

    电磁兼容简明教程(1)

    电磁兼容简明教程(1)
    的头像 发表于 12-05 16:23 281次阅读
    电磁兼容<b class='flag-5'>简明教</b>程(1)