保存在地址0xFDFE和0xFDFF中的安全鎖定字節集可以保護 FLASH 存儲器,使得不能通過JTAG接口讀取或修改其內容。安全鎖定字節中的每一位保護一個8k字節的存儲器塊。將讀鎖定字節中的一位清0可防止通過JTAG接口讀對應的 FLASH存儲器塊將寫/擦除鎖定字節中的一位清0可防止通過JTAG接口寫/擦除對應的存儲器塊。當所有其它扇區都被鎖定后128字節的扇區才被鎖定。
本文引用地址:http://cqxgywz.com/article/201611/320880.htm

使用FLASH訪問限制(FLACL)這一特殊功能寄存器來設置軟件讀限制。所希望的軟件訪問限制地址(設計者希望的軟件訪問保護的最高地址)的高字節被裝入FLACL寄存器。該限制地址的低字節為0x00。如果FLACL寄存器被賦值為0x40,則軟件訪問限制地址為0x4000。所有位于地址0x0000到0x4000(包括0x4000)的存儲區內的代碼將不能被在該地址以上執行的軟件訪問。在FLACL邊界之上執行的程序可以用跳轉或調用指令進入到FLACL邊界以下的保護存儲區。軟件讀限制只對MOVX和MOVC操作起作用。為了防止對FLASH的訪問,應使用FLASH安全字節保護0x4000以下的存儲區或進行整體保護。

這里要提到一個軟件Flash Programming Utilities,在用Keil編譯完成后生成hex文件,需要量產時,可以按下圖操作

即下程序前擦出真個Flash,下完后對代碼進行鎖定,防止被讀寫;對于鎖定了代碼的MCU,需要在Flash Erase選項卡中擦除,否則在下面第二個圖顯示的界面中是無法用連接上的

評論