RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AMD-Xilinx MPSoC的Watchdog在Linux中使用的簡(jiǎn)明教程

jf_pJlTbmA9 ? 來(lái)源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-07 14:15 ? 次閱讀

AMD-Xilinx MPSoC的器件里,提供了內(nèi)置的Watchdog。在Vivado里選擇Watchdog,并在設(shè)備樹里使能Watchdog,還不能在Linux中正常使用。

pmu-firmware修改

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

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>;
};

啟動(dòng)信息

使用命令“dmesg”檢查啟動(dòng)信息,有如下信息。

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

通過設(shè)備節(jié)點(diǎn)控制Watchdog

通過設(shè)備節(jié)點(diǎn)“/dev/watchdog0”可以控制Watchdog。

執(zhí)行命令“echo s > /dev/watchdog0”,能啟動(dòng)Watchdog,但是沒有清狗操作。時(shí)間久了,單板會(huì)自動(dòng)重啟動(dòng)。

#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

執(zhí)行命令“echo 'V' > /dev/watchdog0”,能停止Watchdog,單板再也不會(huì)自動(dòng)重啟動(dòng)。

#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

通過應(yīng)用程序控制Watchdog

Linux也提供了應(yīng)用程序watchdog控制Watchdog,啟動(dòng)Watchdog并清狗。下面是啟動(dòng)Watchdog的示例。如果由于特殊原因,應(yīng)用程序watchdog異常退出,就會(huì)導(dǎo)致單板復(fù)位。下面的例子中,使用kill命令殺死了應(yīng)用程序watchdog的進(jìn)程,導(dǎo)致單板復(fù)位。

#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

通過系統(tǒng)腳本啟動(dòng)Watchdog并清狗

Linux也提供系統(tǒng)腳本/etc/init.d/watchdog-init控制Watchdog。
系統(tǒng)腳本/etc/init.d/watchdog-init也使用了應(yīng)用程序控制Watchdog。如果使用kill命令殺死應(yīng)用程序watchdog的進(jìn)程,也會(huì)導(dǎo)致單板復(fù)位。

#/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

測(cè)試單板

KV260 2022.1 BSP


審核編輯:湯梓紅

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

    關(guān)注

    25

    文章

    5466

    瀏覽量

    134087
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209326
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121301
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    24271
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Protel DXP簡(jiǎn)明教

    Protel DXP簡(jiǎn)明教程電路設(shè)計(jì)自動(dòng)化( Electronic Design Automation ) EDA 指的就是將電路設(shè)計(jì)中各種工作交由計(jì)算機(jī)來(lái)協(xié)助完成。如電路圖( Schematic
    發(fā)表于 12-09 15:13

    DSP中斷設(shè)置簡(jiǎn)明教

    DSP中斷設(shè)置簡(jiǎn)明教程 from hellodsp
    發(fā)表于 10-24 20:51

    protel簡(jiǎn)明教

    protel簡(jiǎn)明教
    發(fā)表于 01-13 13:47

    vivado簡(jiǎn)明教

    本帖最后由 burkfly 于 2014-1-14 22:26 編輯 vivado簡(jiǎn)明教程,初學(xué)者有用!
    發(fā)表于 01-14 22:22

    PROTEL簡(jiǎn)明教

    簡(jiǎn)明教程希望對(duì)你有用
    發(fā)表于 03-27 11:11

    Vivado 簡(jiǎn)明教

    Vivado 簡(jiǎn)明教
    發(fā)表于 05-07 11:25

    ADS版圖導(dǎo)入、編輯、仿真簡(jiǎn)明教

    ADS版圖導(dǎo)入、編輯、仿真簡(jiǎn)明教
    發(fā)表于 09-12 16:10 ?0次下載

    ZEMAX光學(xué)輔助設(shè)計(jì)簡(jiǎn)明教

    ZEMAX光學(xué)輔助設(shè)計(jì)簡(jiǎn)明教程 ZEMAX光學(xué)輔助設(shè)計(jì)簡(jiǎn)明教
    發(fā)表于 10-30 17:57 ?0次下載

    電工學(xué)簡(jiǎn)明教程習(xí)題+答案

    電工學(xué)簡(jiǎn)明教程習(xí)題+答案高清pdf版本電工學(xué)簡(jiǎn)明教程習(xí)題+答案高清pdf版本
    發(fā)表于 02-25 14:13 ?16次下載

    SKILL程序使用及開發(fā)簡(jiǎn)明教

    Cadence SKILL語(yǔ)言的使用及開發(fā)簡(jiǎn)明教程,從網(wǎng)上下的。。。
    發(fā)表于 08-26 15:09 ?0次下載

    Protel99簡(jiǎn)明教

    本文檔詳細(xì)的介紹了Protel99使用的簡(jiǎn)明教
    發(fā)表于 08-30 17:02 ?0次下載

    Altium-Designer-10簡(jiǎn)明教

    Altium-Designer-10簡(jiǎn)明教
    發(fā)表于 12-16 22:13 ?0次下載

    基于DSP中斷設(shè)置簡(jiǎn)明教

    基于DSP中斷設(shè)置簡(jiǎn)明教
    發(fā)表于 10-23 14:28 ?5次下載
    基于DSP中斷設(shè)置<b class='flag-5'>簡(jiǎn)明教</b>程

    Rpi SenseHAT與AMD-Xilinx Kria KR260和Petalinux的接口

    電子發(fā)燒友網(wǎng)站提供《Rpi SenseHAT與AMD-Xilinx Kria KR260和Petalinux的接口.zip》資料免費(fèi)下載
    發(fā)表于 07-13 10:18 ?0次下載
    Rpi SenseHAT與<b class='flag-5'>AMD-Xilinx</b> Kria KR260和Petalinux的接口

    電磁兼容簡(jiǎn)明教程(1)

    電磁兼容簡(jiǎn)明教程(1)
    的頭像 發(fā)表于 12-05 16:23 ?561次閱讀
    電磁兼容<b class='flag-5'>簡(jiǎn)明教</b>程(1)
    RM新时代网站-首页