不小心发现了C8051F的一个小BUG。。。 C8051F加密是通过控制FLASH中的某个字节来实现的,如果=0xFF则不加密,反码即为加密的扇区数,但这个字节不是定位在最后位置,而是在中间偏后的位置,我今天的项目需要两个很大的代码区数组,这样如果预先把加密字节预留的话则数组不能连续存放导致装不下,但其实总量并没有超过FLASH大小,但如果不预留的话,加密字节会被数组占有,而值很可能不是0xFF,换句话说相当于设置了加密,这样虽然编译没有任何问题,但下载程序的时候会出现提示对被加密的区域进行写操作,这时必须取消操作,也就是不能写,导致不能正确下载,程序也就不可能正确执行。。。 当然这种问题只在比较特殊的情况下才能出现,但必竟确实是个问题,如果把加密字节放在最后位置是不会有问题的。。。 如图
 |