概述
對于AT32 MCU不同的系列,因為功能改進等原因,安全庫區的配置使用可能有所差異。用戶使用OTP功能主要目的是需要將一些特殊數據保存其中,在需要時可以讀取,并且不允許修改和擦除。目前AT32 MCU的安全庫區根據內部結構可以分為以下幾種區域
僅允許I-Code總線讀取指令的區域(I-BUS area)
僅允許D-Code總線讀取數據的區域(D-BUS area)
允許I-Code和D-Code總線讀取的唯讀區域(READ-ONLY area)
只要包含允許D-Code總線訪問的區域,其特點就是允許讀取數據,不允許擦除或者修改(除非原應用設計者輸入自定義秘鑰KEY解除slib進行全部擦除),達到OTP功能的效果。所以只要設計者將需使用OTP功能的數據保存在允許D-Code總線訪問的安全庫區域,就能達到只允許讀取,不允許擦除和修改的目的。
操作說明
根據AT32 MCU的安全庫區結構劃分,必須將要保存的OTP數據放置在允許D-Code總線訪問的區域(D-BUS area或者READ-ONLY area)。
通過代碼操作
Demo中403A的AT-START開發板上,演示如何開啟slib,并將數據放在slib的D-Code區域。
執行流程及說明:1) 按USER鍵觸發;2) 如果程序首次執行(MCU處于slib disable狀態),順序往下執行步驟3,如果程序非首次運行(MCU處于slib enable狀態),跳轉到流程步驟7進行;3) 配置slib,包括password和range;4) 寫入OTP數據到slib的D-code區域;5) LED2/3/4會同時亮起;6) 按RESET鍵復位,重新執行流程步驟1;7) 此時OTP功能生效,因為slib已開啟,無法再次配置slib,也不能擦除或者修改對應區域數據,LED2亮起;8) 按USER鍵觸發;9) 關閉slib(當程序在flash運行時,執行該步驟會觸發flash mass erase,程序無法再繼續運行),執行系統復位,結束演示。
注意事項:
- demo中定義256字節數據作為OTP數據,選擇的slib D-Code區域是對應系列MCU可設置slib范圍的最后一個sector。關于不同系列MCU的slib可設置范圍,可以參看對應的AT32各系列安全庫區(SLIB)應用指南。
- 演示完成后,關閉slib是為了方便后續MCU調試使用。真實應用時slib OTP功能開啟會不再disable。
通過ICP/ISP等工具操作
通過Artery的ICP/ISP等上位機軟件可以更方便的實現該功能,在燒錄項目文件時,將需保存的OTP數據一起燒錄,完成slib OTP功能。
以ICP工具在線燒錄為例,步驟如下:
1)添加對應燒錄文件:LED.bin為項目文件,OTP_DATA.bin為需要保存的OTP數據;圖1. ICP添加文件
圖2. ICP下載配置
3)驗證OTP功能:執行主存儲擦除,擦除后讀取OTP數據存儲位置,數據無法擦除,仍然有效。
圖3. 驗證結果關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。
-
mcu
+關注
關注
146文章
17173瀏覽量
351656
發布評論請先 登錄
相關推薦
評論