侵权投诉

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

嵌入式ARM 2021-06-27 11:41 次阅读

如果你还不了解什么是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

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

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

ed903544-d6b2-11eb-9e57-12bb97331649.png

编辑:jq

原文标题:STM32的Flash写了保护怎么办?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

在线负氧离子监测系统价格是多少

在线负氧离子监测系统价格是多少FT-FYLZ 【风途】空气中负氧离子多,少受地理条件和环境影响的不同....
发表于 09-28 16:13 62次 阅读

大气负氧离子在线监测系统

大气负氧离子在线监测系统FT-FYLZ【风途】透过树叶的阳光细细密密地洒在身上,沙沙的树叶声、叽叽喳....
发表于 09-28 15:10 70次 阅读

如何解决导热油管腐蚀渗漏问题

导热油管腐蚀渗漏情况及原因分析:某企业导热油管出现腐蚀渗漏问题,设备数据如下:轴径120mm左右,导....
发表于 09-28 14:55 8次 阅读

土壤养分检测仪的作用和意义

土壤养分检测仪是一款专业的土壤检测仪器,其作用就是检测土壤的氮、磷、钾、有机质、酸碱度、盐分等信息,....
发表于 09-28 14:34 38次 阅读

STM32驱动无刷直流电机

STM32驱动无刷直流电机(电源技术是干什么的)-STM32驱动无刷直流电机包括原理图和驱动程序
发表于 09-28 14:26 12次 阅读
STM32驱动无刷直流电机

基于STM32的开关电源设计论文

基于STM32的开关电源设计论文(长城电源技术有限公司招聘)- 基于STM32的开关电源设计论文+开....
发表于 09-28 12:39 13次 阅读
基于STM32的开关电源设计论文

直流电机控制代码

直流电机控制代码(深圳市普德新星电源技术有限公司官网)- 直流机控制代码 可以控制直流机的转速以及正....
发表于 09-28 12:24 4次 阅读
直流电机控制代码

STM32MP157 Linux系统移植开发篇14:Linux内核RGB LCD驱动移植

本文章为《STM32MP157 Linux系统移植开发篇》系列中的一篇,笔者使用的开发平台为华清远见FS-MP1A开发板(STM32M...
发表于 09-28 11:22 101次 阅读

采用FPGA协处理器实现算法加速教程

当今的设计工程师受到面积、功率和成本的约束,不能采用GHz级的计算机实现嵌入式设计。在嵌入式系统中,....
的头像 FPGA设计论坛 发表于 09-28 10:38 134次 阅读
采用FPGA协处理器实现算法加速教程

轻松玩转STM32Cube资料包下载(下)

轻松玩转STM32Cube资料包下载(下)
发表于 09-28 09:46 9次 阅读

轻松玩转STM32Cube资料包下载(2)

轻松玩转STM32Cube资料包下载(2)
发表于 09-28 09:41 6次 阅读

轻松玩转STM32Cube资料包下载(上)

轻松玩转STM32Cube资料包下载(上)
发表于 09-28 09:39 7次 阅读

STM32F1开发指南-库函数版本_V3.3(下)

STM32F1开发指南-库函数版本_V3.3(下)
发表于 09-28 09:36 6次 阅读

STM32F1开发指南-库函数版本_V3.3(上)

STM32F1开发指南-库函数版本_V3.3(上)
发表于 09-28 09:34 6次 阅读

STM32F1开发指南-寄存器版本_V3.3pdf(下)

STM32F1开发指南-寄存器版本_V3.3pdf(下)
发表于 09-28 09:31 5次 阅读

STM32F1开发指南-寄存器版本_V3.3.pdf(上)

STM32F1开发指南-寄存器版本_V3.3.pdf(上)
发表于 09-28 09:29 7次 阅读

STM32F1开发指南(V1.0 -HAL 库版)

STM32F1开发指南(V1.0 -HAL 库版)
发表于 09-28 09:25 5次 阅读

如何对基于STM32H757XI的流水灯进行调试

如何对基于STM32H757XI的流水灯进行调试?
发表于 09-28 08:54 0次 阅读

怎样去完成STM32的USART串口通讯程序

怎样去完成STM32的USART串口通讯程序?有哪些步骤? ...
发表于 09-28 08:51 0次 阅读

怎样去设计一种基于stm32的oled显示badapple

怎样去设计一种基于stm32的oled显示badapple?
发表于 09-28 08:32 0次 阅读

如何去实现一种基于STM32的室内温湿度检测设计

如何去实现一种基于STM32的室内温湿度检测设计?其步骤有哪些? ...
发表于 09-28 08:01 0次 阅读

STM32是什么?有何特点

STM32是什么?有何特点?
发表于 09-28 07:50 0次 阅读

如何去实现一种基于STM32LL库点亮LED灯的设计

配置cubemx的步骤有哪些? 如何去实现一种基于STM32LL库点亮LED灯的设计? ...
发表于 09-28 07:45 0次 阅读

STM32之printf的小方法是什么

STM32之printf的小方法是什么?
发表于 09-28 07:30 0次 阅读

浅析STM32基础知识

什么是STM32?STM32可分为哪几类?STM32是如何命名的?...
发表于 09-28 06:28 0次 阅读

怎样去设计一种基于stm32的两轮平衡小车

两轮平衡小车是由哪些模块组成的? 怎样去设计一种基于stm32的两轮平衡小车?...
发表于 09-28 06:26 0次 阅读

无人机反制系统的发展前景怎么样

中国反无人机技术进步迅猛 无人机反制枪效果明显在全球范围内,无人机威胁都受到了各方重点关注,如何对无....
发表于 09-27 15:05 187次 阅读

Arduino和STM32性能对比究竟谁更厉害

Arduino和STM32性能对比究竟谁更厉害呢?很多电子爱好者面对Arduino和STM32时都会....
的头像 STM32嵌入式开发 发表于 09-27 14:32 558次 阅读

基于STM32上的5个ADC程序

基于STM32上的5个ADC程序(单兵电源技术需求)-基于STM32上的5个ADC程序,是学习STM....
发表于 09-27 12:37 15次 阅读
基于STM32上的5个ADC程序

STM32的ADC学习历程

STM32的ADC学习历程(电源技术期刊影响因子)- STM32的ADC学习历程 STM32基础学习....
发表于 09-27 12:32 20次 阅读
STM32的ADC学习历程

德国介入调查数据安全,小米“全球第一”这事儿还稳吗?

根据路透社此前的报道,当地时间9月21日,立陶宛国防部国家网络安全中心发布产品调查报告称,中国小米在....
的头像 Felix分析 发表于 09-27 08:57 1393次 阅读
德国介入调查数据安全,小米“全球第一”这事儿还稳吗?

C语言中的“三字母词”是什么

某软件工程师接盘了前同事的项目,进度一拖再拖,最后发现问题出现在如下代码: // 注释语句 ??/2....
的头像 嵌入式ARM 发表于 09-26 14:46 119次 阅读

STM32等单片机程序加密解密方法

单片机加密、解密 单片机(MCU)一般都有内部程序区和数据区(或者其一)供用户存放程序和工作数据(或....
的头像 STM32嵌入式开发 发表于 09-26 11:14 512次 阅读

pandas筛选数据的8个小技巧

  日常用 Python 做数据分析最常用到的就是查询筛选了,按各种条件、各种维度以及组合挑出我们想....
的头像 数据分析与开发 发表于 09-26 11:04 563次 阅读
pandas筛选数据的8个小技巧

芯片开发语言为什么要用Chisel和Verilog

在最近召开的RISC-V中国峰会上,中科院计算所的包云岗研究员团队正式发布了名为“香山”的开源高性能....
的头像 FPGA技术江湖 发表于 09-26 11:00 703次 阅读
芯片开发语言为什么要用Chisel和Verilog

机器人搭建过程中的坑和未来的改进方向

将机器人整体开源,同时总结一下机器人搭建过程中遇到的坑和未来的改进方向。在分享的文件里包含了结构设计....
的头像 STM32嵌入式开发 发表于 09-26 10:59 715次 阅读
机器人搭建过程中的坑和未来的改进方向

如何解决BOM数据总是不准的问题

作者:魏保国 来源:甘棠软件,本文经授权转载 1 引言 笔者近年来参与了汽车主机厂及零部件企业大小十....
的头像 工业互联网前线 发表于 09-26 10:52 112次 阅读

指标监控体系如何建设

对于数据人尤其是数据产品和分析师,最难排查(头疼)的问题就是指标为什么升/降/没数,一旦业务方提出这....
的头像 数据分析与开发 发表于 09-26 10:39 120次 阅读
指标监控体系如何建设

高速串行通信常用的编码方式-8b/10b编码/解码解析

  论序 8b/10b编码/解码是高速串行通信,如PCle SATA(串行ATA),以及Fiber ....
的头像 OpenFPGA 发表于 09-26 09:56 110次 阅读
高速串行通信常用的编码方式-8b/10b编码/解码解析

Vector看板管理工具Squore助力敏捷开发

JIRA是一款集项目管理、缺陷跟踪、团队协作、服务管理、敏捷规划于一体的优秀商业软件,目前已被广泛应....
的头像 Vector维克多 发表于 09-26 09:29 109次 阅读

剖析C语言中scanf函数常见问题

在写C代码时难免对一些知识点不熟悉,导致犯错,今天分享几点小知识给大家。 空白符问题        ....
的头像 STM32嵌入式开发 发表于 09-24 16:45 165次 阅读

战舰:官方程序定时器触发ADC,测试可用

战舰:官方程序定时器触发ADC,测试可用(电源技术发展的新趋势新技术)-stm32f103定时器触发....
发表于 09-24 15:11 12次 阅读
战舰:官方程序定时器触发ADC,测试可用

企业中的推荐系统包括哪几个部分

随着互联网的发展和人工智能的进步,各个厂家都开始针对性的向用户推荐自己的内容,这些内容包括了文章、视....
的头像 TensorFlow 发表于 09-24 14:49 124次 阅读

Crypto算法库使用技巧之基于STM32 AES GCM应用提示

引言 X-CUBE-CRYPTOLIB 是基于 STM32 的 Crypto 算法库,支持对称密钥、....
的头像 STM32单片机 发表于 09-24 14:23 412次 阅读

土壤检测仪器的特点有哪些

林业技术推广中心-土壤检测仪器【莱恩德 LD-GT4】土壤中的养分种类也很多,但是这些养分并不能全部....
发表于 09-24 13:56 21次 阅读

pod底层网络和数据存储是如何进行的

1. 核心组件原理 —— pod 核心原理 1.1 pod 是什么 pod 也可以理解是一个容器,装....
的头像 马哥Linux运维 发表于 09-24 11:35 131次 阅读

秒杀几道运用Dijkstra算法的题目

读完本文,可以去力扣解决如下题目: 743. 网络延迟时间(中等) 1514. 概率最大的路径(中等....
的头像 算法与数据结构 发表于 09-24 10:59 108次 阅读
秒杀几道运用Dijkstra算法的题目

拓扑排序算法有什么作用

大家好,我是bigsai。 拓扑排序,很多人都可能听说但是不了解的一种算法。不知者大多会提出这样的疑....
的头像 算法与数据结构 发表于 09-24 10:53 93次 阅读
拓扑排序算法有什么作用

存储新纪元即将到来

据估计,亚马逊网络服务公司(Amazon Web Services Inc.)今年将产生约90亿美元....
的头像 SSDFans 发表于 09-24 10:09 168次 阅读
存储新纪元即将到来

微软予力诺与诺德开辟医药领域全新业务场景应用

可以预见,在科技化的未来,数字技术的进步将会为人们创造更加美好的生活,而对医药行业更是意义非凡。愈来....
的头像 微软科技 发表于 09-24 09:41 992次 阅读

玉米赤霉烯酮检测仪的特点及创新技术

玉米赤霉烯酮具有雌激素的作用,可以是家禽产生雌性激素亢进症,妊娠的动物或人食用含有玉米赤霉烯酮的食物....
发表于 09-23 16:49 18次 阅读

Vivado之VIO原理及应用

虚拟输入输出(Virtual Input Output,VIO)核是一个可定制的IP核,它可用于实时....
的头像 OpenFPGA 发表于 09-23 16:11 146次 阅读
Vivado之VIO原理及应用

STM32等单片机程序加密有哪些方法

为了防止大家的程序不被剽窃,本文给大家分享单片机加密的方法。 另外关于解密的方法可以参考这篇文章如何....
的头像 STM32嵌入式开发 发表于 09-23 16:06 162次 阅读

关于标签数据提升语法错误纠正效果

语法错误纠正 (GEC) 指的是试图对语法和其他类型的写作错误进行建模,并给出语法和拼写建议,从而改....
的头像 TensorFlow 发表于 09-23 15:44 135次 阅读

简述Git的一些基础知识

  简单地说,Git 究竟是怎样的一个系统呢?请注意接下来的内容非常重要,若你理解了 Git 的思想....
的头像 马哥Linux运维 发表于 09-23 15:43 226次 阅读
简述Git的一些基础知识

让C++代码更加高效的几个小技巧

今天和大家介绍一下能让C++代码更加高效的几个小技巧,话不多说,以下为本文目录: 参数传递方式:值传....
的头像 嵌入式ARM 发表于 09-23 15:20 122次 阅读
让C++代码更加高效的几个小技巧

能够让STM32更简单的工具

目 录 1. STM32Cube Ecosystem 2. CubeMX 3. CubeIDE 4.....
的头像 嵌入式ARM 发表于 09-23 15:14 197次 阅读

Python后端项目的协程是什么

最近公司 Python 后端项目进行重构,整个后端逻辑基本都变更为采用“异步”协程的方式实现。看着满....
的头像 Linux爱好者 发表于 09-23 14:38 151次 阅读

STM32的ADC驱动程序

STM32的ADC驱动程序(电源技术被踢出核心)-  STM32的ADC驱动程序,环境是MDK,AD....
发表于 09-23 13:43 30次 阅读
STM32的ADC驱动程序

如何选择合适的STM32

什么是 STM32 STM32,从字面上来理解,ST是意法半导体,M是Microelectronic....
的头像 MCU开发加油站 发表于 09-23 11:30 250次 阅读
如何选择合适的STM32