STM32 读保护的实现

读保护的实现即可以在代码中实现,也可以通过ST提供的软件实现。

基于HAL库的读保护实现

使用的开发板是STM32F2系列,代码如下:

HAL_StatusTypeDef FLASH_EnableReadProtection(void)
{FLASH_OBProgramInitTypeDef OptionsBytesStruct = { 0 };HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct);HAL_StatusTypeDef result = HAL_OK;if (OptionsBytesStruct.RDPLevel == OB_RDP_LEVEL_0){OptionsBytesStruct.OptionType = OPTIONBYTE_RDP;OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_1;HAL_FLASH_Unlock();HAL_FLASH_OB_Unlock();if (HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK){/* Launch the option byte loading */HAL_FLASH_OB_Launch();/* Lock the FLASH Option Control Registers access */HAL_FLASH_OB_Lock();HAL_FLASH_Lock();return result;}/* Launch the option byte loading */HAL_FLASH_OB_Launch();/* Lock the FLASH Option Control Registers access */HAL_FLASH_OB_Lock();HAL_FLASH_Lock();result = HAL_ERROR;}return result;
}

基于标准库的读保护实现

使用的开发板是STM32F4系列,代码如下:

uint32_t Flash_EnableReadProtection(void)
{/* Returns the FLASH Read Protection level. */if( FLASH_OB_GetRDP() == RESET ){/* Unlock the Option Bytes */FLASH_OB_Unlock();/* Sets the read protection level. */FLASH_OB_RDPConfig(OB_RDP_Level_1);/* Start the Option Bytes programming process. */  if (FLASH_OB_Launch() != FLASH_COMPLETE){/* Disable the Flash option control register access (recommended to protect the option Bytes against possible unwanted operations) */FLASH_OB_Lock();/* Error: Flash read unprotection failed */return (2);}/* Disable the Flash option control register access (recommended to protect the option Bytes against possible unwanted operations) */FLASH_OB_Lock();/* Read Protection successfully enable */return (1);}/* Read Protection successfully enable */return (1);
}

除了使用代码实现读保护还可以通过STM32 ST-LINK Utiltity实现读保护,如下图所示:


以上三种方式实现的读保护,都需要在执行完成以后,将开发板断电复位,按复位键有可能不起作用,需要断开电源才行。

实现读保护以后,flash将不可以从外部读取,如果想再次烧录代码,需要解除保护,解除读保护也可以使用代码,例如在代码中添加触发机制,比如串口收到某个特殊字符,则调用函数解除读保护。又或者使用软件,依然还是STM32 ST-LINK Utiltity,操作过程和打开读保护一致,只不过在选择等级的时候选择Level 0,则会将flash上的数据全部擦除,接着就可以重新烧代码。

路漫漫其修远兮,吾将上下而求索

STM32 读保护的实现相关推荐

  1. STM32 读保护功能和清除读保护功能设置【转】

    1.STM32对内部Flash的保护措施  所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护.    1).读保护即大家通常说的"加密" ...

  2. 使用STVP解除STM32读保护

  3. stm32使用 ST-LINK Utility量产,程序读保护、写保护

    一.下载 ST-LINK Utility 去ST官网下载ST-LINK Utility,下载链接,安装. 二.使用ST-Link链接板子,打开ST-LINK Utility,点连接,如果正常,则stm ...

  4. FX3U PLC源代码,stm32芯片。 全套硬件,软件源码,可以直接用GX Works2编程直接写入。 带读保护版本

    FX3U PLC源代码,stm32芯片. 全套硬件,软件源码,可以直接用GX Works2编程直接写入. 带读保护版本. 是以太网之前的最高版本. 产品功能描述:用梯形图语言编写应用程序,可以直接使用 ...

  5. stm32的几种读保护措施讲解

    综合网上讲解的几种读保护措施,这里简单总结下: 采用stm32唯一ID作为加密的字符,使用固定密码,采用16位字节AES加密的方式生成密文,然后写进flash,,app程序执行的时候需要判断读取的st ...

  6. 使用 STM32 ST-LINK Utility解除芯片的读保护

    STM32的芯片被读保护了,怎样也无法对芯片进行烧写程序.用STlink也无法对单片机开发板进行下载程序了,只需要用STM32 ST-LINK Utility这个工具来解除读保护即可. 1.将开发板和 ...

  7. STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论

    调试Flash读保护时,Jlink不能下载程序 发布: 2010-1-20 22:54 | 作者: linew | 来源: StmFans思蜕盟 OPELC 自由电子联盟 调试flash读保护时,点了 ...

  8. stm32 软件怎么设置写保护_STM32F407 读保护,写保护,解锁过程【芯片已设置读保护,无法读取更多信息】...

    硬件准备: CH340 USB转TTL串口一个 STM32F407 板子一块 设置从ISP启动 软件准备: 1,flash_loader_demo_v2.8.0.exe 或者 FlashLoader ...

  9. GD32篇 一、GD32程序设置读保护,防止程序被读取

    GD32篇 记录 一.GD32开发版程序设置读保护,防止程序被读取 二.GD32TIMER输出PWM 平台:PC 系统:Win10 1909 开发版:GD32F103RCT6 软件:Keil.STM3 ...

最新文章

  1. 傅莹:AI 治理,需要借鉴「核管控」教训
  2. 政务大数据共享难题的破解路径有哪些?
  3. hoj 3005 Game Rigging 强联通分量求缩点
  4. unity3d-知识汇总
  5. [云炬ThinkPython阅读笔记]2.10 练习
  6. 数学建模之运筹学问题
  7. java随机产生坐标点_刚学JAVA不久,问一下怎么把这个程序实现随机啊,不是按照坐标...
  8. html5标签兼容低版本浏览器
  9. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统.doc
  10. NLP硬核入门-Seq2Seq和Attention机制
  11. 修改Myeclipse中项目在tomcat上发布的名称
  12. 北航计算机组成原理课程设计-2020秋 PreProject-Logisim-Logisim仿真与调试应用与挑战
  13. Ghost Win10 企业版LTSC 2020.05(32位+64位)
  14. 【精品】MySQL 自定义函数
  15. 【嵌入式】---- 单片机常用单位
  16. @Column中的length属性和@Size和@length区别
  17. java-IO流(5)-IO流中的设计模式(装饰器模式和适配器模式)的介绍
  18. Word | 在给毕业论文添加页眉和页脚的时候,如何略过首页和第二页
  19. 海明码检错与纠错,经典例子讲解~
  20. 顶尖学者介绍 | 抑郁领域研究Top1-5的大牛们都是谁?快来看!

热门文章

  1. Flink使用二次聚合实现TopN计算
  2. 慕课网Flask高级编程实战-7.静态文件、模板、消息闪现与Jinja2
  3. 微信小程序实现图案绘制
  4. 游戏建模兼职网站类型情况分析
  5. Android 谈谈自动化测试
  6. java生成英雄与怪物对象,java 创建一个LOL中的英雄类和怪物类 初学者,求大神指点...
  7. Win10 连接不上局域网共享文件解决方案
  8. 如何从视频聊天软件源码下手,解决敏感词屏蔽问题
  9. 卓懿9.0正式版来袭
  10. element上传组建+axios实现文件上传