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

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

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

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

FPGA技術(shù)江湖 ? 來源:XILINX開發(fā)者社區(qū) ? 2023-06-30 09:47 ? 次閱讀

1

簡介

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

LPD SWDT主要用于保護(hù)RPU系統(tǒng)及其相關(guān)連接。

FPD SWDT主要用于保護(hù)APU系統(tǒng)及其相關(guān)連接。

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

2

對應(yīng)關(guān)系

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

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

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

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

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

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

3

在Petalinux里的使用

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

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

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

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

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

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

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

關(guān)于ENABLE_RECOVERY,ENABLE_ESCALATION和CHECK_HEALTHY_BOOT的更多介紹,請用戶參考 UG1137。

4

CSU WDT的使用

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

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






審核編輯:劉清

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

    關(guān)注

    10

    文章

    554

    瀏覽量

    70572
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5250

    瀏覽量

    119192
  • PMU
    PMU
    +關(guān)注

    關(guān)注

    1

    文章

    101

    瀏覽量

    21496
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

    24190
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    797

    瀏覽量

    65852

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

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32中的獨立看門狗和窗口看門狗是什么

    早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本
    的頭像 發(fā)表于 02-20 17:47 ?2503次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    MCU獨立看門狗和窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機(jī)了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。
    發(fā)表于 03-03 09:18 ?662次閱讀

    什么是看門狗電路

    看門狗電路 看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統(tǒng)需要出讓一個定時器資源,這在許多系統(tǒng)中很
    發(fā)表于 10-21 01:40 ?8071次閱讀

    stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么

    本文為您講解STM看門狗時間計算(時限)與頻率計算,獨立看門狗和窗口看門狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8663次閱讀

    什么是stm32看門狗?獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立看門狗
    的頭像 發(fā)表于 11-06 11:48 ?2.7w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

    stm32自帶兩個看門狗模塊,獨立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當(dāng)計數(shù)器達(dá)到給定的超時值時,觸發(fā)一個中斷(僅適用于窗口型
    發(fā)表于 11-09 17:17 ?8288次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

    MCU獨立看門狗與窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機(jī)了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。為了滿足更多使用場景,現(xiàn)在很多MCU都集成了兩個看門狗:獨立看門狗
    發(fā)表于 10-28 20:06 ?8次下載
    MCU獨立<b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區(qū)別

    arduino看門狗

    簡介??看門狗定時器是單片機(jī)的一個組成部分,單片機(jī)程序的調(diào)試和運行中都有著重要的意義。看門狗定時器(WDT,Watch Dog Timer)實際是一個計數(shù)器,一般給
    發(fā)表于 11-15 19:06 ?18次下載
    arduino<b class='flag-5'>看門狗</b>

    arduino看門狗的使用

    簡介??看門狗定時器是單片機(jī)的一個組成部分,單片機(jī)程序的調(diào)試和運行中都有著重要的意義。??看門狗定時器(WDT,Watch Dog Timer)實際是一個計數(shù)器,一般給
    發(fā)表于 12-09 09:36 ?7次下載
    arduino<b class='flag-5'>看門狗</b>的使用

    STM32:獨立看門狗、窗口看門狗的配置

    STM32單片機(jī)的看門狗有獨立看門狗和窗口看門狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:獨立<b class='flag-5'>看門狗</b>、窗口<b class='flag-5'>看門狗</b>的配置

    STM32中的獨立看門狗和窗口看門狗

    一、前言 早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本
    的頭像 發(fā)表于 12-22 16:58 ?1892次閱讀

    STM32中的獨立看門狗和窗口看門狗

    早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本
    的頭像 發(fā)表于 01-30 14:38 ?1215次閱讀
    STM32中的獨立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    MCU如何集成看門狗的功能

    一、前言 早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本
    的頭像 發(fā)表于 06-22 09:09 ?1443次閱讀
    MCU如何集成<b class='flag-5'>看門狗</b>的功能

    什么是看門狗,工業(yè)路由器看門狗技術(shù)的功能優(yōu)勢

    工業(yè)路由器大多都會配備看門狗技術(shù),它是保證工業(yè)路由器傳輸過程中連續(xù)24小時不宕機(jī)的重要保護(hù)技術(shù),那么,什么是看門狗呢?▍看門狗功能看門狗,又叫watchdog,從本質(zhì)上來說就是一個定時
    的頭像 發(fā)表于 03-27 10:16 ?1627次閱讀
    什么是<b class='flag-5'>看門狗</b>,工業(yè)路由器<b class='flag-5'>看門狗</b>技術(shù)的功能優(yōu)勢

    軟件看門狗和硬件看門狗的區(qū)別

    系統(tǒng)出現(xiàn)了故障或死鎖,軟件看門狗會自動重啟系統(tǒng)或執(zhí)行其他預(yù)定義的操作。軟件看門狗通常用于嵌入式系統(tǒng)中,可以方便地進(jìn)行編程和控制。硬件看門狗則是一種獨立的硬件設(shè)備,它與計算機(jī)主板的芯片
    的頭像 發(fā)表于 04-16 15:10 ?703次閱讀