航順芯片HK32F103系列的flash讀保護(hù)應(yīng)用及注意事項(xiàng)
HK32F103xC/D/E作為32位MCU,防止應(yīng)用代碼被非法讀取非常重要,除了常規(guī)的加解密模塊對(duì)flash內(nèi)容進(jìn)行加解密,HK32F103還提供讀、寫保護(hù)功能。其中讀保護(hù)功能一旦使能,則外部工具無法讀取主片區(qū)flash內(nèi)容,起到保護(hù)作用。
嵌入式Flash可以跟通用存儲(chǔ)空間一樣進(jìn)行直接尋址訪問。任何對(duì)Flash內(nèi)容的讀操作都須經(jīng)過專門的判斷過程。取指令和取數(shù)據(jù)都是通過AHB總線讀取訪問。它主要的工作就是產(chǎn)生控制信號(hào),然后讀取Flash里面的信息。
HK32F103x/C/D/E的選項(xiàng)字節(jié)說明
選項(xiàng)字節(jié)由用戶根據(jù)應(yīng)用配置(例如:可以選擇使用硬件看門狗或軟件看門狗)。對(duì)于0x1FFF F800~0x1FFFF810地址的選項(xiàng)字,在選項(xiàng)字節(jié)中每個(gè)32位的字被劃分為下述格式:
選項(xiàng)字節(jié)格式:
注意1:編程時(shí),反碼由硬件自動(dòng)實(shí)現(xiàn),軟件寫無效。選項(xiàng)字節(jié)的組織結(jié)構(gòu)如下表所示。選項(xiàng)字節(jié)可以從下表列出的存儲(chǔ)器地址讀出,或從選項(xiàng)字節(jié)寄存器 (FLASH_OBR) 讀出。
注意2:新寫入的選項(xiàng)字節(jié)(用戶的或讀/寫保護(hù)的),在系統(tǒng)復(fù)位后才生效。
選項(xiàng)字節(jié)結(jié)構(gòu):
當(dāng)RDP選擇字配置值為非0xA5時(shí),使能讀保護(hù)。
當(dāng)RDP選擇字配置值為0xA5時(shí),解除讀保護(hù),這個(gè)操作會(huì)引發(fā)一次主閃存的整片擦除。
讀保護(hù)狀態(tài)存儲(chǔ)在FLASH_OBR的bit1。
HK32F103x/C/D/E的讀保護(hù)在使用過程中需要注意的地方
問題描述:
當(dāng)HK32F103xCxDxE在讀保護(hù)作用下,客戶使用Keil+S**T-Link調(diào)試器進(jìn)行下載,雖然提示下載不成功,但是芯片內(nèi)部的代碼部分被擦除。有客戶反饋,下載不成功,要保持設(shè)備原有功能正常。
Keil+Jlink 沒有該問題。因?yàn)镴link,會(huì)在下載前,可選擇地去除讀保護(hù),如下:
根本原因:
HK32F103xCxDxE 在讀保護(hù)模式下,debugger選擇Sector Erase,會(huì)將前4KB以外的空間擦除掉。
解決方案:
用 S**T-Link Utility上位機(jī)先去掉讀保護(hù),再下載或者仿真。如下,[Target]-->[Option Bytes]:
如需要了解更多航順MCU產(chǎn)品,請聯(lián)系航順核心代理商,穎特新科技,或者掃碼聯(lián)系我們!
在之前的介紹中,我們也為大家介紹了《航順芯片HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨(dú)配置》,也是目前我們主推的非常成熟的解決方案!
編輯:zzy 最后修改時(shí)間:2022-05-28