gpt4 book ai didi

c - STM32F2去除读出保护

转载 作者:行者123 更新时间:2023-12-04 02:30:54 24 4
gpt4 key购买 nike

STM32F2 微 Controller 具有防止使用调试接口(interface)读出应用程序代码的内置功能。它工作正常,并且通过将读取保护 (RDP) 级别配置为 '1' (!0xAA || !0xCC) 或 '2'(不可逆的 0xCC) 非常容易实现。除了尝试将其关闭是我遇到问题的地方。

当 RDP 级别降低回 0 时的预期行为:

  • 芯片将执行批量闪存删除。
  • 随后清除保护标志。
  • 系统重置

除非在电源循环后,闪存已成功删除,但保护标志保持在级别“1”(0x55),从而使调试接口(interface)保持禁用状态。从而阻止我编写任何新的应用程序代码。可以摆弄调试器并手动将标志强制为 0 级 (0xAA)。

有没有人遇到过与STM32F2xx系列相同或相似的问题,可以帮助我吗?我正在使用 STM32 标准外设驱动程序对闪存进行编程。

启用

// Enable read out protection
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_1);
FLASH_OB_Launch();
FLASH_OB_Lock();

// Restart platform
NVIC_SystemReset();

禁用

// Disable read out protection
FLASH_OB_Unlock();
FLASH_OB_RDPConfig(OB_RDP_Level_0);
FLASH_OB_Launch();
FLASH_OB_Lock();

// Restart platform
NVIC_SystemReset();

最佳答案

这是因为在清除保护标志之前,在大量闪存删除过程中,您重启了芯片。

恢复芯片的唯一方法是使用系统引导加载程序。

强制 boot0 引脚为 1 并强制 boot1 引脚为 0 上电时,启动引导加载程序然后连接USB并使用DFU编程器对芯片进行编程。可以下载DFU编程器here .

关于c - STM32F2去除读出保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com