<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

看門狗在Zynq MPSoC上的使用技巧

FPGA技術江湖 ? 來源:XILINX開發者社區 ? 2023-06-30 09:47 ? 次閱讀

1

簡介

在Zynq MPSoC的器件里,PS (Processing System )集成了三個看門狗,分別是CSU SWDT,LPD SWDT和FPD SWDT。CSU SWDT用于保護CSU與PMU及其相關連接。

LPD SWDT主要用于保護RPU系統及其相關連接。

FPD SWDT主要用于保護APU系統及其相關連接。

如果你的程序跑在APU上,并且你需要使用兩個看門狗,那么除了FPD SWDT外,你是可以使用LPD SWDT。

2

對應關系

LPD SWDT和FPD SWDT是提供給用戶的應用程序使用的,CSU SWDT主要是由PMUFW和CSU BOOTROM使用的。所以通常情況下,用戶可以在自己的應用程序里使用LPD SWDT和FPD SWDT。當客戶需要使用時,需要在Vivado里需要使能相關的SWDT。但Vivado里的命名是SWDT0和SWDT1:

8499305e-16d4-11ee-962d-dac502259ad0.png

而在UG1087的寄存器手冊里,SWDT有三個代碼段CSU_WDT, SWDT, WDT:

84b04eba-16d4-11ee-962d-dac502259ad0.png

所以有很多用戶并不清楚這里面的對應關系。工具命名與手冊命名的對應關系可以在UG1085里找到:

84d5099e-16d4-11ee-962d-dac502259ad0.png

3

在Petalinux里的使用

Linux里,AMD Xilinx提供了SWDT的驅動,具體的介紹和測試方法可以參考下面wiki頁面:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842055/Cadence+WDT+Driver

只需要按照該頁面的方法,去使能驅動,修改dts和使能ENABLE_EM, 就能在Linux里使用LPD SWDT或FPD SWDT,這里不再詳述。

當LPD或FPD SWDT超時后,SWDT并不會直接復位整個系統,而是把超時錯誤傳達給PMU,由PMU決定下一步的錯誤處理方式(關于PMU的錯誤處理機制,可以參考UG1085的第6章)。而ENABLE_EM就是使能PMUFW里的錯誤處理模塊,如果不使能該模塊,當SWDT超時后,什么操作也不會發生。

PMUFW提供了一套完整的SWDT復位方案。當用戶使能ENABLE_RECOVERY后,如果FSBL跑在APU上,PMUFW會初始化FPD SWDT,默認設定時間為60秒。這樣在FSBL執行完后,用戶自動獲取SWDT的監控,通常60秒足夠用戶啟動后續的u-boot或Linux。如果60秒不夠,用戶可以在u-boot階段喂一次狗(重啟SWDT),或者在PMUFW工程里添加一個定義RECOVERY_TIMEOUT,把需要的時間定義成RECOVERY_TIMEOUT。(注意,這里需要在Vivado工程里使能TTC。)

如果CPU在復位過程中出現掛死現象,建議用戶把ENABLE_ESCALATION也添加上。如果PMUFW還有空間的話,建議把CHECK_HEALTHY_BOOT也使能上。下表來自UG1137,是系統重啟方案的推薦設置以及空間占用情況的總結。

84e5081c-16d4-11ee-962d-dac502259ad0.png

關于ENABLE_RECOVERY,ENABLE_ESCALATION和CHECK_HEALTHY_BOOT的更多介紹,請用戶參考 UG1137。

4

CSU WDT的使用

CSU WDT的使用比較簡單,只需要在PMUFW里使能ENABLE_WDT,就能讓CSU WDT監測PMU的運行。FSBL啟動后,CSU WDT會設置為90毫秒超時,而PMUFW會有一個task每50毫秒喂一次狗。

請注意,如果用戶在PMUFW里添加了自己的代碼,并且使能了CSU WDT,那需要注意CSU WDT的超時時間。因為如果你在你的代碼里添加了延遲(比如sleep),如果延時超過90毫秒,會導致CSU WDT觸發從而產生異常。






審核編輯:劉清

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

    關注

    10

    文章

    543

    瀏覽量

    70347
  • 寄存器
    +關注

    關注

    30

    文章

    5164

    瀏覽量

    118135
  • PMU
    PMU
    +關注

    關注

    1

    文章

    97

    瀏覽量

    21335
  • MPSoC
    +關注

    關注

    0

    文章

    194

    瀏覽量

    24148
  • Vivado
    +關注

    關注

    18

    文章

    791

    瀏覽量

    65388

原文標題:看門狗 (SWDT) 在Zynq MPSoC 上的使用技巧

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Zynq系統看門狗問題

    WATCHDOGDEV“/ dev / watchdog”int main(void){ int fd; int ret; //打開看門狗設備文件,這樣我們就可以禁用關閉文件描述符 if((fd = open
    發表于 04-03 07:29

    啥叫看門狗?如何合理的使用看門狗?

    啥叫看門狗?看門狗的工作原理是什么?看門狗能看住哪些錯誤呢?看門狗叫后該咋整?具體咋喂看門狗呢?看門狗
    發表于 07-07 07:01

    如何喂看門狗

    [導讀] 單片機程序寫辣么多,看門狗狗天天見,你的狗狗養的對么?不停的喂狗,只要不叫就完了嘛?真是這樣么?事實可能不是你想的辣么簡單.....啥叫看門狗?
    發表于 07-21 06:39

    看門狗是什么?為什么要看門狗?

    看門狗是什么?為什么要看門狗?看門狗解決的問題是什么?
    發表于 07-26 07:37

    看門狗總結

    看門狗總結調原子哥的開發板一年多,基本能用,但是對于STM32某些基本外設的工作機理還不甚明了。借此暑假的機會對各個外設的功能做一個簡短的總結,提高自己基礎知識的同時,也給其他同學提供一些參考。先來
    發表于 07-30 06:17

    看門狗是什么 看門狗的功能

    監測的考慮,便產生了一種專門用于監測單片機程序運行狀態的模塊或者芯片,俗稱“看門狗”(watchdog) 。看門狗的功能①、啟動正常運行的時候,系統不能復位。②、系統跑飛(程序異常
    發表于 07-30 08:07

    看門狗是什么 看門狗分哪幾類

    首先來介紹下看門狗是個神魔東西,現實工業設備設計中需要考慮環境中電磁干擾等一系列干擾,這些干擾會影響單片機的正常工作(會出現程序莫名跑飛),我們改變不了環境就只好從自身這里下手,于是有了一個檢測
    發表于 08-02 09:20

    看門狗的原理 看門狗的作用

    獨立看門狗由內部專門的 40Khz 低速時鐘驅動,即使主時鐘發生故障,它也仍然有效。看門狗的原理:單片機系統在外界的干擾下會出現程序跑飛的現象導致出現死循環,看門狗電路就是為了避免這種情況的發生。
    發表于 08-02 08:56

    stm32-看門狗(獨立看門狗,窗口看門狗)精選資料分享

    現象。進入正題之前,我們先了解一下什么是看門狗。看門狗用于檢測和解決由軟件錯誤引起的故障,當計數器達到給定的超時值時,觸發一個中斷(僅適用于窗口看門狗)或系統復位。通俗的來講,就是.
    發表于 08-02 08:07

    獨立看門狗和窗口看門狗的喂狗限制

    窗口看門狗和獨立看門狗最大的不同就是,獨立看門狗的喂狗限制是計數器遞減為零前,而窗口看門狗的喂狗限制則是
    發表于 08-02 10:46

    窗口看門狗的定義及窗口看門狗和獨立看門狗區別是什么

    窗口看門狗一、窗口看門狗的定義及窗口看門狗和獨立看門狗區別是什么? 總結一下就是獨立看門狗只有下限,在下限前喂狗即可使程序不被復位;而窗口
    發表于 08-02 06:56

    什么是看門狗 為什么要看門狗

    什么是看門狗?為什么要看門狗?看門狗可不是那個入侵手機的游戲STM32中,它具有"看家"的功能所謂"看家",意思就是察覺到異常,就馬上反應過來,反饋給主人
    發表于 08-02 10:59

    獨立看門狗與窗口看門狗介紹

    的獨立看門狗由內部專門的 40Khz 低速時鐘驅動,即使主時鐘發生故障,它也仍然有效。這里需要注意獨立看門狗的時鐘是一個內部 RC 時鐘,所以并不是準確的 40Khz,而是 30~60Khz 之間的一
    發表于 12-07 10:41

    arduino看門狗怎么使用

    簡介??看門狗定時器是單片機的一個組成部分,單片機程序的調試和運行中都有著重要的意義。??看門狗定時器(WDT,Watch Dog Timer)實際是一個計數器,一般給
    發表于 02-14 06:27

    MCU獨立看門狗與窗口看門狗的區別

    (LSI) 驅動,因此,即便在主時鐘發生故障時仍然保持工作狀態?! WDG 最適合應用于那些需要看門狗作為一個主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合?! —毩?b class='flag-5'>看門狗特性
    發表于 03-17 16:30
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>