問題一:
當 TAMPER引腳上的信號從 0變成1或者從 1變成 0(取決於備份控制寄存器BKP_CR的 TPAL位),會產生一個侵入檢測事件。侵入檢測事件將所有數據備份寄存器內容清除。
然而為了避免丟失侵入事件,侵入檢測信號是邊沿檢測的信號與侵入檢測允許位的邏輯與,從而在侵入檢測引腳被允許前發生的侵入事件也可以被檢測到。
● 當 TPAL=0 時:如果在啟動侵入檢測 TAMPER引腳前(通過設置 TPE位)該引腳已經為高電平,一旦啟動侵入檢測功能,則會產生一個額外的侵入事件(盡管在 TPE位置 1后並沒有出現上升沿)。
● 當 TPAL=1 時:如果在啟動侵入檢測引腳 TAMPER前(通過設置 TPE位)該引腳已經為低電平,一旦啟動侵入檢測功能,則會產生一個額外的侵入事件(盡管在 TPE位置 1后並沒有出現下沿)。
在一個侵入事件被檢測到並被清除后,侵入檢測引腳 TAMPER應該被禁止。然后,在再次寫入備份數據寄存器前重新用 TPE位啟動侵入檢測功能。這樣,可以阻止軟件在侵入檢測引腳上仍然有侵入事件時對備份數據寄存器進寫操作。這相當於對侵入引腳 TAMPER進電平檢測。
注: 當 VDD電源斷開時,侵入檢測功能仍然有效。為避免不必要的復位數據備份寄存器,TAMPER引腳應該在片外連接到正確的電平。
解答:其中“注:當VDD電源斷開時,侵入檢測功能仍然有效。為了避免不必要的復位數據備份寄存器,TAMPER引腳應該在片外連接到正確的電平。”這句話不要太糾結,這是硬件做的工作,不要鑽牛角尖,如果想搞明白可以與硬件工程師溝通。我們做軟件的責任是要在這設置好正確的TEMPER電平信號。
TPAL=0時,我們應該將TEMPER引腳拉低。
TPAL=1時,我們應該將TEMPER引腳拉高。(事實上觀察了芯片設計圖,TEMPER引腳默認的情況下就是高電平)
問題二:
“在一個侵入事件被檢測到並被清除后,侵入檢測引腳TAMPER應該被禁止。然后,在再次寫入備份數據寄存器前重新用TPE位啟動侵入檢測功能。這樣,可以阻止軟件在侵入檢測引腳上仍然有侵入事件時對備份數據寄存器進行寫操作。這相當於對侵入引腳TAMPER進行電平檢測。 ”
解答:主要是紅字部分,我們為什么不讓人家寫而禁用TAMPER引腳,實際上我們不是不讓人家寫,是為用戶好,不能讓人家受罪。因為假如你把信號寫進去,這時候上次已經把中斷什么的都關上了,當有入侵時,只是入侵事件標志位由硬件改變,而不進入中斷處理子程序,這樣的話,無法復位備份數據寄存器,那么備份數據寄存器的內容有可能被竊取,所以我們要對禁止TAMPER引腳。
這樣又出現一個問題,入侵允許,配置的時候中斷失能的時候,那么出現入侵信號,那么豈不是數據寄存器的內容部自動清除?需要做實驗進一步驗證。