有兩個未使用的 OTP 存儲器頁面可供客戶編程。每個頁面狀態都保存在 OTP_CUST1_STAT 和 OTP_CUST2_STAT 寄存器中。這些寄存器提供有關頁面當前狀態的信息,例如:
- 加載狀態(已加載、加載出錯或加載失敗)
- 編程成功或可供編程
- 編程狀態
發生復位時,器件會評估 OTP 頁面狀態并選擇要加載的最新且有效的 OTP 頁面。第 2 頁的優先級比第 1 頁的優先級高。如果兩個頁面均未寫入,則會加載出廠 OTP 默認值。節 8.5.1顯示了所有客戶可編程 OTP 參數。當客戶 OTP 第 1 頁和第 2 頁未編程時,寄存器摘要還會顯示默認值。
- 有效頁面是指 OTP_CUST*_STAT[PROGOK] = 1 的頁面。
- 當選擇該頁面進行加載時,OTP_CUST*_STAT1[LOADED] = 1。
- 如果在頁面加載過程中出現單個錯誤,則在更正該單個錯誤后加載頁面,并且 OTP_CUST*_STAT1[LOADWRN] = 1。
- 此外,會使用已糾錯的塊的位置來更新 DEBUG_OTP_SEC_BLK 寄存器。
- 如果發生雙錯,則會終止加載該塊,并加載該塊的硬件默認值(如節 8.5.1中所示)。
- DED 不會終止整個頁面加載過程,僅終止受影響的塊。
- 當發生 DED 時,OTP_CUST*_STAT1[LOADERR] = 1。此外,會使用發生雙重錯誤的塊來更新 DEBUG_OTP_DED_BLK 寄存器。