本帖最后由 Elex 于 2016-12-19 10:26 编辑
按照STM32F030的参考手册,OB_RDP_Level_1 读保护貌似是不应该影响其自身程序读取FLASH和内部序列号存储空间的,但这次我测试在调试状态下执行使能加密程序则一切正常,此后再多次断电重新运行读取内部FLASH和唯一序列号进行校验的程序也是可以正常运行的,用j-flash读取芯片或重新进入调试则会芯片已经读保护了。但如果在程序独立运行时运行使能加密的程序,则此后读取内部FLASH和唯一序列号进行校验的程序就出现错误了(估计是读取内容的操作受到影响了),确认芯片也已经读保护了。
问题: STM32F030读保护会影响程序自己通过指针读取唯一序列号和内部flash么?
这是使能加密的程序:
void lockChip(void)
{
FLASH_Unlock();
// 读写flash标记(l略)
.....(其它Flash操作)
delayMs(50);
FLASH_ClearFlag(FLASH_FLAG_WRPERR | FLASH_FLAG_EOP | FLASH_FLAG_PGERR);
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_1);
//FLASH_OB_Launch(); //此句使能后执行则调试状态也会被马上禁止访问芯片
delayMs(50);
FLASH_OB_Lock();
FLASH_Lock();
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
Address [31:24] [23:16] [15:8] [7:0]
0x1FFF F800 nUSER USER nRDP RDP
数据指针指向地址0x1FFFF7AC连续读取12bytes
一周热门 更多>