dabendan001 发表于 2018-12-22 21:26:51

STM32F105xx写保护如何进行?

使用的是HAL库。

没有使用官方的库,因此FLASH_ReadOutProtection() 不好使。

toofree 发表于 2018-12-24 01:33:19

请参考文件“stm32f1xx_hal_flash_ex.h”和“stm32f1xx_hal_flash_ex.c”







dabendan001 发表于 2018-12-25 09:27:10

本帖最后由 dabendan001 于 2018-12-25 09:31 编辑

toofree 发表于 2018-12-24 01:33
请参考文件“stm32f1xx_hal_flash_ex.h”和“stm32f1xx_hal_flash_ex.c”
非常感谢。这方法我用过,似乎不能完全禁止再次烧写。(烧写时会有提示写保护……)
是我 代码有问题吗?
//OB_RDP_LEVEL_2,在标准库里没有。我参照STM32F4的库,搬过来的。#define OB_RDP_LEVEL_2    ((uint8_t)0xCC)(~病急乱投医)。
//开启写保护,即:禁止写入;
                OptionsBytesStruct.OptionType         = OPTIONBYTE_WRP;
                OptionsBytesStruct.WRPState         = OB_WRPSTATE_ENABLE;
                OptionsBytesStruct.WRPPage            = FLASH_PAGE_TO_BE_PROTECTED;
                OptionsBytesStruct.RDPLevel                = OB_RDP_LEVEL_2;    //   OB_RDP_LEVEL_1
                if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
                {
                        return 1;
                }

toofree 发表于 2018-12-25 10:07:01

可能得研究一下Flash 写保护的意义

dabendan001 发表于 2018-12-25 10:14:32

toofree 发表于 2018-12-25 10:07
可能得研究一下Flash 写保护的意义
非常感谢。从贴子里翻出来的……

    0xCC:级别2,禁止调试

把RDP配置成0xCC值时,会进入最高级别的读保护,且设置后无法再降级,它会永久禁止用于调试的JTAG接口(相当于熔断)。


sincomaster 发表于 2018-12-25 10:41:43

学习了谢谢分享

dabendan001 发表于 2018-12-25 11:29:41

toofree 发表于 2018-12-25 10:07
可能得研究一下Flash 写保护的意义

我才接触STM32两个来月,确实不懂……别人提醒,程序可以被恶意重新烧写……于是想到写保护……不知是不是这样的……
页: [1]
查看完整版本: STM32F105xx写保护如何进行?