Thursdays 发表于 2024-3-13 16:50:06

STM32读保护

使用的GD32F407芯片,然后执行读保护程序后,发现依然可以正常烧录跟调试,烧录日志上显示JLink执行了之前在注册表中保存的默认行为,对设备进行了解锁操作,并成功解锁了设备。
这是JLink自动破解了读保护功能吗?咋样才能让他真正实现读保护
        HAL_FLASH_OB_Unlock();
// 配置选项字节
        FLASH_OBProgramInitTypeDef OBConfig;
        OBConfig.OptionType = OPTIONBYTE_RDP;
        OBConfig.RDPLevel = OB_RDP_LEVEL_1; // 设置读保护级别
        HAL_FLASHEx_OBProgram(&OBConfig);

//// 锁定选项字节寄存器
        HAL_FLASH_Lock(); // 锁定 Flash
        HAL_FLASH_OB_Lock(); // 锁定选项字节

eric2013 发表于 2024-3-14 00:41:07

大部分厂家芯片操作Option byte选项字节后,需要断电复位才会生效
https://www.armbbs.cn/forum.php?mod=viewthread&tid=120182&fromuid=58
(出处: 硬汉嵌入式论坛)

Thursdays 发表于 2024-3-14 09:07:16

eric2013 发表于 2024-3-14 00:41
大部分厂家芯片操作Option byte选项字节后,需要断电复位才会生效
https://www.armbbs.cn/forum.php?mod=v ...

我断电重新上电,发现还是可以从jflash里面读出来

eric2013 发表于 2024-3-14 09:14:29

Thursdays 发表于 2024-3-14 09:07
我断电重新上电,发现还是可以从jflash里面读出来

那你的代码没有设置成功

设置level1读保护,解除读保护后要整片擦除,如果读出来是0xFF,那是正常的。

Thursdays 发表于 2024-3-16 14:46:55

eric2013 发表于 2024-3-14 09:14
那你的代码没有设置成功

设置level1读保护,解除读保护后要整片擦除,如果读出来是0xFF,那是正常的。

读出来的不是0xFF,跟没有设置读出来的一样,是因为我用GD芯片,但程序库函数用的ST的导致的不兼容吗?

eric2013 发表于 2024-3-16 15:14:35

Thursdays 发表于 2024-3-16 14:46
读出来的不是0xFF,跟没有设置读出来的一样,是因为我用GD芯片,但程序库函数用的ST的导致的不兼容吗?

对,估计是不兼容。
页: [1]
查看完整版本: STM32读保护