STM32对内部Flash的保护措施
通过调试器(JTAG或SWD);
从RAM中启动并执行的程序;
2、当Flash读保护生效时,CPU执行程序可以读受保护的Flash区,但存在两个例外情况:
3、Flash保护相关函数
以下摘自论坛:
http://www.openedv.com/posts/list/9353.htm
(1)设置读保护
int
{
....
if(FLASH_GetReadOutProtectionStat
{
//FLASH_Unlock();
FLASH_ReadOutProtection(ENABLE);
}
......
while(1)
{
.....
}
}
读保护后无法使用j-link将程序读出,当然也无法在线仿真了
这个写到程序当中并执行过后,使用j-link就不能‘读出’程序了,就是‘读保护’了!我已经试过了,没有使用此程序可以读出下载到芯片中的程序,但是如果使用了此程序就无法读出程序了。
但是也无法再次烧写新的程序到芯片中了(要测试请慎重!!!!!!)
可以再主程序当中设置一按键专门清除“读保护”,一旦按下按键则清除“读保护”时芯片可以重新被烧写。(我没有怎么做现在后悔死了!)
方法二:补救的方法,专门写一个清除“读保护”程序,使用RAM中运行程序的方法,运行此程序解锁“读保护”。明天再去测试下,此方法。
在主程序中,通过一个按键,写入取消“读保护”
if(FLASH_GetReadOutProtectionStat
{
FLASH_Unlock();
FLASH_ReadOutProtection(DISABLE);
}
使用j-link,可以正常读写程序和在线调试。
如果没有在主程序中有写这条指令,此芯片就无法再次烧写程序(可以擦出但是擦出后还是无法烧写程序)。
只有通过将此取消“读保护”程序,烧写到RAM中运行后,才能取消“读保护”(要尝试的请慎重!!!别救不会来就糟糕了)
STM32内部Flash保护措 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)