我在做写保护与解保护时,需要软件复位,但用KEIL在线调试时,会将FLASH中断向量表那部分数据清零,再运行时就到硬件fault中去了,请问下有没有遇到这种情况的?
Flash中的内容只能通过调试器的程序下载,或你自己的程序改变,除此之外没有其它途径。
任何复位都不可能使Flash内容变为0,所以楼主还是要检查自己的程序。
现在的要求是读保护与写保护同时存在,解写保护时使用库函数擦写选择字节时,因为OB->RDP= RDP_Key;这句将读保护也解除,因此我将这句注释掉。
但解写保护时需要RESET,这时就出现前面所提到的问题。
不将OB->RDP= RDP_Key;注释则是好的。
但如何做到解写保护时,不将读保护解除呢?望赐教!!!
解除写保护时,不可能同时把读保护解除。
因为解除写保护的过程是擦除写保护位,即把对应的写保护位从保护状态'0'变为非保护状态'1';擦除写保护位的同时也擦除了读保护位,即不管读保护位的内容是什么,读保护位都会变为0xFFFF,这恰恰是读保护状态;如果要想解除读保护状态,必须在读保护位中写入0xA5才行。