我正在做一个使用STM32F103的项目,我已经完成了固件的开发。我用ST-Link Utility把东西下载到微控制器上。当我激活芯片上的读出保护时,它停止工作。我需要保护我的固件。有什么问题吗?
发布于 2017-11-13 07:20:51
对于被接受的答案,只需要更多的信息:
从ST32F10XXX docs,"2.4.1 Read protection"一节
通过设置RDP选项字节,然后应用系统复位来重新加载新的RDP选项字节来激活读保护。
注:如果在调试器仍通过JTAG/SWD连接时设置了读保护,请应用POR (开机重置),而不是系统重置(没有调试器连接)。
一旦保护字节被编程:
除用户代码外,不允许对
要禁用嵌入式静态随机存取存储器的读取保护,请执行Unprotection
操作:
注:可使用引导加载程序禁用读保护(在这种情况下,只需系统复位即可重新加载选项字节)。有关更多详细信息,请参阅AN2606。
芯片上还有写保护功能,请看文档。
补充道: STM32读出保护存在问题:https://blog.zapb.de/stm32f1-exceptional-failure/,因此请注意。
发布于 2014-11-14 06:50:55
你得先解锁闪存。在STM32 StdPeriph库中应该有一个调用。我的代码看起来像这样:
/* Read protect the flash. NEVER EVER set this to level 2. You can't
* write to the chip ever again after that. */
FLASH_OB_Unlock();
FLASH_OB_RDPConfig( OB_RDP_Level_1 );
if (FLASH_OB_Launch() != FLASH_COMPLETE)
{
err_printf("Error enabling RDP\n");
}
FLASH_OB_Lock();https://stackoverflow.com/questions/25770483
复制相似问题