精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

了解Zynq SoC的私有看門狗定時器

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-04-29 10:19 ? 次閱讀

在上一篇博客中,我們查看了 Zynq All Programmable SoC 中每個 CPU 提供的私有計時器。在本博客中,我們將了解 Zynq SoC 的私有看門狗定時器,以及如何使用它,我們將查看其使用示例。

參考:

?

UG585 CH8 Timer

每個A9處理器都有私有的32位定時器和32位看門狗定時器。兩個處理器共享一個64位定時器。這些定時器的時鐘始終是的CPU頻率的1/2(CPU_3x2x)。

69c16a1a-c754-11ec-bce3-dac502259ad0.png

然而,在我們研究如何配置和使用 Zynq 看門狗之前,我認為最好先了解一下為什么需要看門狗定時器以及看門狗是如何工作的??撮T狗解決了無響應軟件的必然性,并為這個問題提供了可靠的解決方案。無論最終應用是什么,所有工程師都希望提供可靠的解決方案,優秀的系統設計人員知道他們必須針對所有可能性進行設計。

系統工程團隊必須采取許多步驟來確??煽康脑O計。第一步是建立定義系統及其軟件行為的需求基線。然后,工程團隊按照軟件生命周期實施這些要求,其中包括:

  • 設計文檔的生成
  • 軟件設計和源代碼
  • 驗證策略是否已達到要求

大多數設計將包括確保軟件能夠對系統故障做出合理響應的方法。這些故障可能會產生兩種影響之一——允許軟件繼續運行,同時保持完整或減少的服務,或者完全無法響應。當軟件無法響應時,看門狗定時器可以重新啟動系統或確保系統安全的發生故障。(安全關鍵系統和軟件的問題是一個復雜的問題,需要的空間比我在這里詳細介紹的要多。)

從最簡單的意義上說,看門狗是一個從預加載值開始倒計時的計時器。當軟件應用程序執行時,它會定期重置看門狗。如果軟件未能重置看門狗,它的計數將達到零,然后看門狗電路復位處理器。當軟件正常運行時,看門狗計數永遠不會達到零。如果軟件由于某種原因出現故障,則看門狗不會復位,計數達到零,處理器復位,軟件重新啟動。許多系統都有一個寄存器,它在看門狗觸發時設置了一個位。此功能允許系統從看門狗復位中恢復過來,同時注意看門狗觸發了復位這一事實。

Zynq SoC 中的兩個 ARM Cortex-A9 處理器中的每一個都有一個私有看門狗定時器。這些私有看門狗可以用作像私有計時器(在本系列的上一篇博客文章中討論過)這樣的計時器,也可以用作看門狗。Zynq 看門狗定時器通過六個寄存器控制:

  • 看門狗加載寄存器(Watchdog Load Register):保存看門狗定時器倒計時的值。在自動重載模式下,看門狗計數器重置為存儲在該寄存器中的值。寫入該寄存器將導致看門狗計數器寄存器重置為此值。
  • 看門狗計數器寄存器(Watchdog Counter Register):這是看門狗計數器本身。是遞減計數器。根據看門狗模式,寫入該寄存器會重新加載計數器。在看門狗模式下,該寄存器只能通過寫入看門狗加載寄存器來更新。
  • 看門狗控制寄存器(Watchdog Control Register):該寄存器控制看門狗(定時器或看門狗)的配置、預分頻器設置、中斷啟用、自動重載模式以及看門狗在其當前配置模式下的啟用。
  • 看門狗中斷狀態寄存器(Watchdog Interrupt Status Register):包含一個事件標志,顯示計數器何時達到零。寫入該寄存器會重置它。
  • 看門狗復位狀態寄存器(Watchdog Reset Status Register):該寄存器僅包含一位,僅由上電復位(不是看門狗觸發的復位)清除。它也可以通過軟件應用程序清除。復位狀態位允許軟件確定重啟的原因是否是由看門狗超時引起的。
  • 看門狗禁用寄存器(Watchdog Disable Register):當看門狗設置為定時器模式時,該寄存器需要寫入兩個特定模式以啟用看門狗控制寄存器中的看門狗模式位。

正如我們在 Zynq SoC 的私有定時器中看到的那樣,Zynq 軟件開發環境提供了許多可用于配置和驅動看門狗的函數和宏。這些包含在#include "xscuwdt.h" 中。該文件使工具能夠:

  • 測試看門狗是否過期
  • 加載看門狗
  • 啟動、停止和重新啟動看門狗
  • 設置看門狗模式
  • 配置和初始化看門狗

以下示例將看門狗配置為不刷新的傳統看門狗,以便看門狗在超時時復位 Zynq SoC。然后,示例代碼檢查以確定在看門狗復位(例如上電復位或看門狗超時)后復位的原因,并通過 STDOUT 報告此情況。按下按鈕啟動私人(專用)定時器,點亮 LED,并啟動看門狗。為了做到這一切,我們按照標準方法配置看門狗,就像我們迄今為止使用來自 xparameters.h 的數據和配置例程對所有外設所做的那樣:

//defineprivatewatchdog
#defineWDT_DEVICE_IDXPAR_SCUWDT_0_DEVICE_ID
#defineINTC_DEVICE_IDXPAR_SCUGIC_SINGLE_DEVICE_ID
#defineWDT_IRPT_INTRXPAR_SCUWDT_INTR
#defineWDT_LOAD_VALUE0xFF

//看門狗配置

WCHConfigPtr=XScuWdt_LookupConfig(WDT_DEVICE_ID);
XScuWdt_CfgInitialize(&WdtInstance,WCHConfigPtr,WCHConfigPtr->BaseAddr);
XScuWdt_LoadWdt(&WdtInstance,WDT_LOAD_VALUE);
XScuWdt_Start(&WdtInstance);

在初始化和加載看門狗之后,接下來的步驟是啟用中斷(在中斷配置函數內)并將看門狗設置為看門狗功能,而不是使用 XScuWdt_SetWdMode() 函數的定時器功能:

//setupthewatchdog

XScuGic_Connect(GicInstancePtr,WdtIntrId,(Xil_ExceptionHandler)WdtIntrHandler,
(void*)WdtInstancePtr);


//設置看門狗

XScuWdt_SetWdMode(WdtInstancePtr);

如果我們希望在定時器模式下使用看門狗,我們可以調用函數:XScuWdt_SetTimerMode()這就是為什么我設置中斷以觸發在定時器模式下運行的看門狗并為看門狗聲明一個空的中斷服務程序,在這種情況下將被調用。

我們可以使用讀取看門狗復位狀態寄存器的函數來查看最后一次復位是否是由于看門狗事件:

XScuWdt_IsWdtExpired(InstancePtr)

下圖顯示了當處理器從上電復位和按下按鈕以啟用看門狗定時器時發生的復位上電時通過 STDOUT 輸出的結果:

69d874a8-c754-11ec-bce3-dac502259ad0.png

先前的復位狀態保持存儲在其中的看門狗事件的狀態通過 XScuWdt_IsWdtExpired() 訪問的看門狗復位狀態寄存器。

此示例的源代碼:

?

https://gitee.com/openfpga/zynq-chronicles/blob/master/main_part16.c

69f5cd8c-c754-11ec-bce3-dac502259ad0.jpg


審核編輯 :李倩


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

    關注

    10

    文章

    559

    瀏覽量

    70754
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120035
  • 定時器
    +關注

    關注

    23

    文章

    3241

    瀏覽量

    114500

原文標題:ZYNQ從放棄到入門(六)- 專用看門狗

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文詳解看門狗定時器

    看門狗定時器由獨立的1 Mhz 片內振蕩驅動。這是VCC = 5V 時的典型值。請參見特性數據以了解其他VCC 電平下的典型值。通過設置看門狗
    發表于 09-02 16:40 ?3949次閱讀
    一文詳解<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    STM32看門狗定時器的工作原理和作用 看門狗定時器的特性

    看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數,一般來說都是向下計數的,給看門狗一個數字,程序開始運行后
    的頭像 發表于 07-27 16:30 ?5852次閱讀
    STM32<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的工作原理和作用 <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的特性

    看門狗電路的作用

    看門狗電路的作用      看門狗電路其實是一個獨立的定時器,有一個定時器控制寄存,可以設
    發表于 01-12 12:00 ?8572次閱讀
    <b class='flag-5'>看門狗</b>電路的作用

    內部與外部看門狗定時器的比較

    摘要:本文對內部(集成在處理內部)看門狗定時器(WTD)與外部(基于硬件) WDT的優勢和劣勢進行了對比。內部看門狗便于設計,但容易失效。MAXQ2000微控制
    發表于 05-02 10:34 ?4604次閱讀

    看門狗定時器的設計、工作原理及看門狗定時器的操作

    看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數,一般給看門狗一個數字,程序開始運行后看門狗
    發表于 05-23 09:14 ?7640次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的設計、工作原理及<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的操作

    看門狗定時器的作用

    看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上是一個計數,一般給看門狗一個數字,程序開始運行后看門狗
    發表于 10-20 14:41 ?6673次閱讀

    dsp看門狗定時器的作用解析

    看門狗在外圍監控DSP中軟件的運行以及硬件的操作,當CPU出現故障時,看門狗將執行系統復位。如果軟件進入了一個不正確的循環或者CPU出現暫時的混亂,看門狗定時器將出現溢出來使系統復位。
    發表于 11-21 16:52 ?1.4w次閱讀
    dsp<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的作用解析

    基于VxWorks的看門狗定高效定時機制設計實現

    VxWorks提供了一個看門狗定時器(watchDog timer),它由以下四個函數維護: wdCreate( ) 創建并初始化一個看門狗定時器;wdDelete( ) 終止并
    發表于 03-06 09:22 ?4757次閱讀
    基于VxWorks的<b class='flag-5'>看門狗</b>定高效<b class='flag-5'>定時</b>機制設計實現

    TB3123 - PIC?單片機的窗口看門狗定時器

    窗口看門狗定時器(Windowed Watchdog Timer,WWDT)是PIC單片機的增強型看門狗定時器。該定時器是PIC單片機現有
    發表于 03-26 14:35 ?0次下載
    TB3123 - PIC?單片機的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    什么是看門狗定時器?為何看門狗定時器如此重要?

    的MCU故障可能無意中使看門狗定時器喪失功用,因此整合看門狗可能不會總是按預期的方式運作。同樣地,雖然軟件以內部看門狗能夠偵測所有凍結或停機的方式編寫,但是,采取額外的步驟以冗余方式監
    的頭像 發表于 08-29 08:13 ?2.4w次閱讀
    什么是<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>?為何<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>如此重要?

    看門狗定時器的相關問題和實驗說明

    看門狗的作用: 看門狗定時器是一個計數,基本功能是在發生軟件問題和程序跑飛后使系統重新啟動。看門狗計數
    的頭像 發表于 10-06 12:59 ?4491次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>的相關問題和實驗說明

    一文詳解微控制中的看門狗定時器

    本文介紹看門狗定時器,通常縮寫為 WDT,也稱為計算機正常運行定時器或 COP。有外部看門狗設備和內部看門狗功能。本文僅介紹內部
    的頭像 發表于 04-25 17:26 ?5012次閱讀
    一文詳解微控制<b class='flag-5'>器</b>中的<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>

    使用高速微型看門狗定時器

    在惡劣環境中使用的高速微控制應用的設計人員將使用看門狗定時器來防止軟件失控。DS80C320高速微控制集成了看門狗
    的頭像 發表于 02-09 11:54 ?883次閱讀

    內部和外部看門狗定時器的比較

    本文比較了內部(與微處理集成)和外部(基于硬件)看門狗定時器(WDT)的優缺點。它解釋了內部看門狗定時器易于實現,但容易發生故障。MAXQ
    的頭像 發表于 04-03 11:15 ?2963次閱讀

    AXI時基看門狗定時器(WDT)概述

    XilinxLogiCORE IP AXI4-Lite時基看門狗定時器(WDT)是一個32位外設,提供32位自由運行時基和看門狗定時器。
    的頭像 發表于 10-16 11:10 ?1156次閱讀
    AXI時基<b class='flag-5'>看門狗</b><b class='flag-5'>定時器</b>(WDT)概述