最近搞了一下关于加密的调试,在此做个记载。
其实很简单,仅仅对#FF0F进行操作一下就可以了,具体位操作详见S12FTS256KV2.PDF,寄存器FESC。
在MAIN.C的最终加上
const volatile unsigned char SecureReg @(0xFF0F)=0xFC;
即可,留意VOLATILE字样,假如没有的话,或许被DUBUG掉。
我对一切的程序进行了调试,一切正常,只要在涉及到FLASH擦写时,程序无法正常运转,或许把程序段放入FLASH分页时无法正常运转。查了N多材料,未果。
所以找了FREESCALE的技术支持,沟通往后发现,是我芯片类型的问题,由于我的芯片的MASK是1K79X,比较老的类型,所以的确在这个方面是有问题的,假如换成了DT256或许高版别的MASK,即可解决问题。
这里是1K79X参错里的内容,描绘了这个问题。
MUCts00603: FLASH
Program & erase blocked in normal single chip mode when secure
Description
In normal single chip mode, when security is enabled, it is not possible to launch the Program ($20), Sector-Erase ($40) and Erase-Verify ($05) commands in the Flash. The Mass-Erase ($41) command can be launched.
Workaround
To enable the Program ($20), Sector-Erase ($40) and Erase-Verify ($05) commands in the flash, security must be disabled via the backdoor key sequence. See Flash User Guide for details of the backdoor key operation.
至此问题解决。