天天看點

1472_TC275的看門狗簡介以及安全看門狗及CPU看門狗的區分

全部學習彙總: ​​GreyZhang/g_TC275: happy hacking for TC275! (github.com)​​

看基礎的例程的時候看到了一個看門狗的操作接口,是以順着來了解一下TC275的看門狗。而按照我之前了解到的資訊,似乎也沒有看到過誰在軟體設計中把這個看門狗的功能充分利用起來。

之前看基礎的例程,首先看到了一個看門狗的處理接口。

1472_TC275的看門狗簡介以及安全看門狗及CPU看門狗的區分

這個是代碼中的相關的接口操作,從接口的含義來看,先是禁用了CPU的看門狗接着禁用了安全看門狗。如此,這裡面其實是對應着兩種看門狗功能。另外,在core1以及core2的代碼中沒有這樣的操作,相應的代碼狀态我這裡不做展示了。那麼,這個CPU的看門狗與安全看門狗是什麼關系呢?後面,借助于文檔來确認一下。

1472_TC275的看門狗簡介以及安全看門狗及CPU看門狗的區分

這裡面的資訊還是很多的,主要的知識點或者注意事項簡單列一下:

1. 如同代碼中看到的,在TC275的MCU中的确是有安全看門狗以及CPU看門狗兩類。安全看門狗是整個MCU系統級别的,而CPU的看門狗隸屬于每一個核心。

2. 每一個看門狗都有一個ENDINIT的機制,可以防止關鍵的寄存器被意外修改。

3. 在系統異常的時候不能夠喂狗也不能夠操作ENDINIT,如果必須操作需要通過确認密碼以及保護位來進行相應的操作。

4. 如果密碼的操作都是正确的也不意味着修改可以一直修改,有一個限制的時間,如果想要延長時間需要通過操作ENDINIT來實作。

5. 如果密碼等資訊錯誤,會直接産生一個alarm報給SMU。其實,一定程度上這種方式可以用來提供多一種複位實作手段。

6. 程式流以及程式執行時間的監控都是可選的,從相關的描述看這樣的功能似乎是硬體本身的一種機制而不是依賴于軟體政策實作。

7. 任何WDT的逾時都會報到SMU,SMU産生中斷或者NMI。

1472_TC275的看門狗簡介以及安全看門狗及CPU看門狗的區分

主要的知識點資訊:

1. 如果有的系統中隻用了一個看門狗的話,看起來最好是安全看門狗。這個需要選擇一個CPU來對這個看門狗進行喂狗服務操作。

2. CPU看門狗應該在獨立的core中各自獨立操作使用。

3. 安全看門狗的逾時時間配置不是在看門狗子產品本身,而是在SMU中。

4. 這裡提出來一個SE的概念,其實就是下面的Safety ENDINIT的縮寫。

5. CPU的看門狗有些功能看起來跟安全看門狗是類似的。

6. CPU的看門狗逾時參數配置也是在SMU中。

7. 複位之後,CPU0的看門狗定時器是預設啟動的,其他的CPU的看門狗不是預設啟動的。其實,根據前面的描述來看,即使是定時器逾時似乎也不見得會直接觸發reset,因為還有一個SMU做最終的動作抉擇。另外,最後面這段描述直接解釋了為什麼看到的代碼中,隻有core0的軟體中有看門狗的操作,因為其他的core中的看門狗預設是不啟動的。

1472_TC275的看門狗簡介以及安全看門狗及CPU看門狗的區分

繼續閱讀