详解什么是STM32对其Flash的保护

发布者:rockstar7最新更新时间:2024-07-25 来源: elecfans关键字:STM32  Flash  保护 手机看文章 扫描二维码
随时随地手机看文章

如果你还不了解什么是STM32对其Flash的保护,那么就由小橙同学来给你讲解一下什么是STM32的Flash保护!


什么是Flash?

STM32的FLASH组织结构,可能因不同系列、型号略有不同。比如大家熟悉的STM32F1中小容量一页大小只有1K,而F1大容量一页有2K。

还比如有些系列以扇区为最小单元,有的扇区最小16K,有的128K不等。

通常Flash包含几大块,这里以F40x为例:

存储器:用来存放用户代码或数据。

系统存储器:用来存放出厂程序,一般是启动程序代码。

OTP 区域:一小段一次性可编程区域,供用户存放特定的数据。

选项字节:存放与芯片资源或属性相关的配置信息。

什么是STM32对内部Flash的保护?

所有的STM32芯片都会提供对Flash的保护,防止对Flash的非法访问,分为:写保护和读保护。

1、读保护就是大家通常说的“加密”,作用于整个Flash存储区域。如果一旦设置了Flash的读保护,那么单片机内置的Flash存储区就只能通过程序的正常执行才能读出,而不能通过下述方式读出:

(1) 使用调试器(JTAG或SWD);

(2)从内存RAM中启动并执行的程序;

2、写保护是以四页(1KB/页) Flash存储区为单位提供写保护,如果对Flash设置了写保护,那么就无法对Flash进行编程和擦除,而且同时产生操作错误标志。 当出现下图标志的时候,就要检查Flash是否被保护起来了。

读保护与写保护的相关效果

当设置读保护与写保护时,其效果如下图所示:

读保护写保护 对Flash的操作功能

有效有效CPU只能读,禁止调试和非法访问。

有效无效CPU可以读写,禁止调试和非法访问,页0~3为写保护。

无效有效CPU可读,允许调试和非法访问。

无效无效CPU可以读写,允许调试和非法访问。

1、flash保护的相关函数


2、STM32如何设置读保护?

我们只需要在程序开头加入“设置读保护”的代码就可以,这样就可以在每次运行代码的时候都检查一下,如果没有开的话就打开,如果开了就跳过。下面是读保护的代码:

ed7daabe-d6b2-11eb-9e57-12bb97331649.png?imageView2/2/w/1000

当我们在程序的开头执行了上面的代码之后,使用j-link就不能在读出程序了,这样就实现了读保护。

3、如何通过代码接触Flash保护解除读保护可以下面代码来进行解除,我们为了方便解锁,可以设置一个按键。

ed903544-d6b2-11eb-9e57-12bb97331649.png?imageView2/2/w/1000


关键字:STM32  Flash  保护 引用地址:详解什么是STM32对其Flash的保护

上一篇:GD32与STM32谁更好?
下一篇:stm32中断怎么处理的

推荐阅读最新更新时间:2026-03-20 11:57

STM32Flash写了保护怎么办
关于STM32对内部Flash的保护 为了防止对Flash的非法访问,所有STM32的芯片都提供对Flash的保护,具体分为写保护和读保护。 如果对Flash设置了写保护,那就无法对Flash进行编程和擦除。在开发STM32的时候,如果出现这种情况,通常仿真器都支持对Flash进行解锁,像jlink,stlink等仿真器都支持这个功能。 在使用MDK进行调试的时候,可能会遇到如下图所示的报错信息,这时候就要排查Flash是不是被保护起来了。 读保护即大家通常说的“加密”,是作用于整个Flash存储区域,相关文章:STM32等单片机程序加密的方法。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常
[单片机]
<font color='red'>STM32</font>的<font color='red'>Flash</font>写了<font color='red'>保护</font>怎么办
STM32Flash读写保护,SWD引脚锁的各种解决办法汇总
问题现象: MDK,J-Flash,IAR等无法连接芯片,有时候链接上了,但是无法下载。 注意:如果下载器线的接触不良,也会有这个问题。 问题描述: 1、Flash读写保护 根本原因是工程设计有问题,特别是实际晶振大小与程序中HSE_VALUE大小不一致,很容易导致Flash读保护。 而读保护的本质是芯片的选项字节被设置了,因为读保护就在选项字节里面,详情看此贴:链接 2、SWD锁 SWD接口锁住就是SWD引脚被锁住了,根本原因是用户使用这个引脚做其它功能了。 解决办法: 1、SWD引脚锁解决办法: (1)、SWD引脚被锁住的解决办法比较简单,只要下载器带了复位引脚,并且板子的SWD接口也留出了RST复位引脚,就可以
[单片机]
<font color='red'>STM32</font>的<font color='red'>Flash</font>读写<font color='red'>保护</font>,SWD引脚锁的各种解决办法汇总
STM32H7内部Flash的读保护说明(Level0默认,Level1连接保护,Level2设备和自举保护
RDP(read out protection) 1、Level 0(无保护) 默认设置,所有读写和擦除操作都可以正常支持。 2、Level 1 (Flash连接保护) (1)可以防止连接调试器时读取Flash内容,或者RAM中存有恶意获取代码,也是禁止的。 因此只要调试器连接芯片,或者从内部RAM启动运行代码,都是禁止访问内部Flash的. (2)如果没有检测到从内部RAM启动,从系统bootloader启动且没有连接调试器,对用户Flash的读写和擦除操作都是允许的,并且其它安全存储区也是可以访问的。否则是禁止访问的,一旦检测到对Flash的读请求,将产生总线错误。 (3)如果将Level
[单片机]
STM32H7内部<font color='red'>Flash</font>的读<font color='red'>保护</font>说明(Level0默认,Level1连接<font color='red'>保护</font>,Level2设备和自举<font color='red'>保护</font>)
STM32F4(Flash保护)
1,目的 在实际的产品发布中,如果不对储存在单片机Flash中的程序做一些保护的话,就有可能被一些不法公司,通过仿真器(J-Link,ST-Link等)把Flash中的程序读取回来,得到bin文件或hex文件,然后去山寨产品。所以我们需要对程序进行保护,一种比较简单可靠的方法就是把Flash设置成读保护。 2,开发环境 1,适用芯片:STM32F4全部芯片 2,固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 3,IDE:MDK517 3,程序源码 /***************************************************************
[单片机]
高性能FLASH存储器在DSP电机智能保护中的应用
摘要:DSP芯片以其高速、实时性等优点逐步被用到电机保护中,利用高性能外围器件尤其是外围存储器与DSP的硬件匹配是充分发挥其优点的必要条件。文中以基于TMS320C32高速CPU为核心芯片的智能型电机保护装置为模型,介绍了高性能FLASH芯片Am29F010B与DSP芯片的硬件接口电路、软件编程技术以及应注意的问题和设计技巧。 关键词:Flash存储器 DSP 嵌入式算法 Am29F010B 国内的电动机保护装置种类繁多,但随着现代大中型电动机对保护要求的不断提高和VLSI技术的不断进步,传统的基于热敏电阻、机械式继电器和电子式等保护模式均因可靠性不高,容易出现误操作等缺点已不能满足需要;而以单片机为核心的数字或保护装置的运
[缓冲存储]
基于STM32Flash读写详解
前言 本文主要介绍STM32多种的内部Flash读写方式和读写长文件的功能函数怎样编写。阅读完本文可以使你能够正常的完成Flash读写操作。 介绍 STM32 FLASH 不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了1024K 字节。本次实验选用的STM32 开发板是F103ZET6,其 FLASH 容量为 512K 字节,属于大容量产品(另外还有中容量和小容量产品),大容量产品的闪存模块组织如图 所示: STM32 的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。 主存储器,该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品
[单片机]
MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL
MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL 是因为目标板的芯片处于休眠的状态,在尝试连接目标板时候也会出现报错Internal command error Flash download failed target dll has been can的现象,解决办法是使目标板退出休眠,即按住reset键再下载程序,看到USB通讯灯闪后一小会儿(自己把握)后放开reset就能看到程序下载进去了,不行就多试几次,成功一次后面就正常了
[单片机]
MDK st-link下载<font color='red'>STM32</font>程序出现Internal command error和Error:<font color='red'>Flash</font> download failed. Target DLL
针对单片机flash和ram的分析(stm32)
问题描述: 在裸机开发中, 当代码量越来越大的时候,生成的需要烧写的二进制文件也越来越大, 片内的flash之后128KB,超过这个数之后下载到flash中可能就会出错 代码量大的同时,运行的时候, CPU将固件读到RAM,然后文件的大小如果超出了RAM的大小, 程序运行也会出错 主要搞明白: 1. 如何查看片内flash和ram大小 2. 代码编译运行时对代码中的一些变量和方法如何存储,运行时如何开辟内存空间 3. 生成的各种二进制文件的区别(.hex, .bin, .axf)以及烧写方式 如何查看片内flash和ram大小 官方文档和手册: 根据官方文档给出的 FLASH 的大小为 128KB, SRAM 大小为 1
[单片机]
针对单片机<font color='red'>flash</font>和ram的分析(<font color='red'>stm32</font>)
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved