STM32 读保护的实现
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 读保护的实现相关推荐
- STM32 读保护功能和清除读保护功能设置【转】
1.STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护. 1).读保护即大家通常说的"加密" ...
- 使用STVP解除STM32读保护
- stm32使用 ST-LINK Utility量产,程序读保护、写保护
一.下载 ST-LINK Utility 去ST官网下载ST-LINK Utility,下载链接,安装. 二.使用ST-Link链接板子,打开ST-LINK Utility,点连接,如果正常,则stm ...
- FX3U PLC源代码,stm32芯片。 全套硬件,软件源码,可以直接用GX Works2编程直接写入。 带读保护版本
FX3U PLC源代码,stm32芯片. 全套硬件,软件源码,可以直接用GX Works2编程直接写入. 带读保护版本. 是以太网之前的最高版本. 产品功能描述:用梯形图语言编写应用程序,可以直接使用 ...
- stm32的几种读保护措施讲解
综合网上讲解的几种读保护措施,这里简单总结下: 采用stm32唯一ID作为加密的字符,使用固定密码,采用16位字节AES加密的方式生成密文,然后写进flash,,app程序执行的时候需要判断读取的st ...
- 使用 STM32 ST-LINK Utility解除芯片的读保护
STM32的芯片被读保护了,怎样也无法对芯片进行烧写程序.用STlink也无法对单片机开发板进行下载程序了,只需要用STM32 ST-LINK Utility这个工具来解除读保护即可. 1.将开发板和 ...
- STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论
调试Flash读保护时,Jlink不能下载程序 发布: 2010-1-20 22:54 | 作者: linew | 来源: StmFans思蜕盟 OPELC 自由电子联盟 调试flash读保护时,点了 ...
- stm32 软件怎么设置写保护_STM32F407 读保护,写保护,解锁过程【芯片已设置读保护,无法读取更多信息】...
硬件准备: CH340 USB转TTL串口一个 STM32F407 板子一块 设置从ISP启动 软件准备: 1,flash_loader_demo_v2.8.0.exe 或者 FlashLoader ...
- GD32篇 一、GD32程序设置读保护,防止程序被读取
GD32篇 记录 一.GD32开发版程序设置读保护,防止程序被读取 二.GD32TIMER输出PWM 平台:PC 系统:Win10 1909 开发版:GD32F103RCT6 软件:Keil.STM3 ...
最新文章
- 傅莹:AI 治理,需要借鉴「核管控」教训
- 政务大数据共享难题的破解路径有哪些?
- hoj 3005 Game Rigging 强联通分量求缩点
- unity3d-知识汇总
- [云炬ThinkPython阅读笔记]2.10 练习
- 数学建模之运筹学问题
- java随机产生坐标点_刚学JAVA不久,问一下怎么把这个程序实现随机啊,不是按照坐标...
- html5标签兼容低版本浏览器
- 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统.doc
- NLP硬核入门-Seq2Seq和Attention机制
- 修改Myeclipse中项目在tomcat上发布的名称
- 北航计算机组成原理课程设计-2020秋 PreProject-Logisim-Logisim仿真与调试应用与挑战
- Ghost Win10 企业版LTSC 2020.05(32位+64位)
- 【精品】MySQL 自定义函数
- 【嵌入式】---- 单片机常用单位
- @Column中的length属性和@Size和@length区别
- java-IO流(5)-IO流中的设计模式(装饰器模式和适配器模式)的介绍
- Word | 在给毕业论文添加页眉和页脚的时候,如何略过首页和第二页
- 海明码检错与纠错,经典例子讲解~
- 顶尖学者介绍 | 抑郁领域研究Top1-5的大牛们都是谁?快来看!