Wednesday, May 23, 2007

Securing & Unsecuring Flash, E64 & E256

Secure Flash:

加密後的Flash是無法經外部BDM or Cyclone Pro讀取Flash內容。
加密的方法是在Flash 0xFF0F的位址寫入0x80 or 0x81 or 0x83,重新開機後MCU會把0xFF0F的值載入FSEC暫存器。FSEC[1:0]所代表即是目前Flash的加密狀態。
After reset, @FF0F
--> FSEC

Unsecure Flash:

FSEC是唯讀的,不能經由改寫FSEC[1:0]改變Flash的加密狀態。
解密的方法有二:
一、使用Backdoor key, 可暫時的將Flash解密。這個方法通常是由外部提供Keys, 如經由RS232輸入。
二、抹除0xFF0F所在的Sector (0xff00 == 0x3FBF00). 然後將0xFF0F寫入0x82,重新開後 @FF0F à FSEC,便可將Flash解密。抹除的工作都必需是由MCUFirmware



想不到是AN2880SW有問題,之前可能都沒人試吧!
KEYACC @ FCNFG[5] 被設成1之後是無法讀取Flash資料的。
但是在AN2880SW的程式中犯了這樣的錯誤。

1 comment:

麥克斯 said...

問題:使用燒錄器燒錄完成後,便無法執行驗證的動作(原因是Flash已經被加密了,所以不能執行讀取的令命),加密的動作必須在程式執行時才完成加密!