0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Q4MP_gh_c472c21 来源:金橙智能 作者:金橙智能 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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1548

    浏览量

    146632
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87573
  • STM32
    +关注

    关注

    2239

    文章

    10669

    浏览量

    348679
  • 代码
    +关注

    关注

    30

    文章

    4554

    浏览量

    66720

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

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

收藏 人收藏

    评论

    相关推荐

    stm32 flash写数据怎么存储的

    stm32 flash写数据怎么存储的  STM32是一款广泛应用于嵌入式系统开发的微控制器,它的Flash存储器是其中一个重要的组成部分。在本文中,我将详细介绍
    的头像 发表于 01-31 15:46 721次阅读

    STM32L4R9的QuadSPI Flash通讯速率不理想

    STM32L4R9的QuadSPI Flash通讯速率不理想
    的头像 发表于 11-06 17:06 462次阅读
    <b class='flag-5'>STM32</b>L4R9的QuadSPI <b class='flag-5'>Flash</b>通讯速率不理想

    STM32加密问题:怎样预置一段Flash保护和清除读保护的程序

    STM32加密问题:怎样预置一段Flash保护和清除读保护的程序 在STM32加密方案中,为了对芯片进行加密,我们需要加入读
    的头像 发表于 10-29 17:24 1278次阅读

    STM32Flash写了保护怎么办?STM32如何设置读保护和解除读保护

    STM32Flash写了保护怎么办?STM32如何设置读保护和解除读保护? 一、
    的头像 发表于 10-29 17:24 6602次阅读

    ARM STM32中的程序是在RAM里还是在FLASH里运行?

    STM32有两个存储空间,一个是片上的FLASH,一个是片上的RAM。RAM相当于内存,FLASH相当于硬盘。
    的头像 发表于 10-27 14:06 1832次阅读
    ARM <b class='flag-5'>STM32</b>中的程序是在RAM里还是在<b class='flag-5'>FLASH</b>里运行?

    讲讲STM32单片机Flash的读保护和写保护

    讲讲STM32单片机Flash的读保护和写保护
    的头像 发表于 10-26 15:52 4266次阅读
    讲讲<b class='flag-5'>STM32</b>单片机<b class='flag-5'>Flash</b>的读<b class='flag-5'>保护</b>和写<b class='flag-5'>保护</b>

    为什么STM32Flash地址要设置到0x08000000?

    为什么STM32Flash地址要设置到0x08000000?
    的头像 发表于 10-26 15:50 980次阅读
    为什么<b class='flag-5'>STM32</b>的<b class='flag-5'>Flash</b>地址要设置到0x08000000?

    模电Flash动画详解

    模电Flash动画详解,一共有161个!
    发表于 09-27 08:15

    STM32 CRC使用详解

    电子发烧友网站提供《STM32 CRC使用详解.pdf》资料免费下载
    发表于 09-19 14:58 3次下载
    <b class='flag-5'>STM32</b> CRC使用<b class='flag-5'>详解</b>

    STM32库函数SystemInit()详解

    STM32库函数SystemInit()详解
    的头像 发表于 09-18 15:45 1945次阅读
    <b class='flag-5'>STM32</b>库函数SystemInit()<b class='flag-5'>详解</b>

    STM32H7技术详解

    电子发烧友网站提供《STM32H7技术详解.pdf》资料免费下载
    发表于 08-01 14:49 2次下载
    <b class='flag-5'>STM32</b>H7技术<b class='flag-5'>详解</b>

    STM32数字电源设计关键外设详解与应用

    电子发烧友网站提供《STM32数字电源设计关键外设详解与应用.pdf》资料免费下载
    发表于 07-31 14:33 13次下载
    <b class='flag-5'>STM32</b>数字电源设计关键外设<b class='flag-5'>详解</b>与应用

    STM32CUBEIDE(16)----内部Flash读写

    本例程主要讲解如何对芯片自带Flash进行读写,用芯片内部Flash可以对一些需要断电保存的数据进行保存,无需加外部得存储芯片,本例程采用的是STM32F103RBT6,128K大小的Flas
    的头像 发表于 07-27 09:24 962次阅读
    <b class='flag-5'>STM32</b>CUBEIDE(16)----内部<b class='flag-5'>Flash</b>读写

    Flash基本操作——Flash基础(1)#多媒体技术

    FlaSh
    未来加油dz
    发布于 :2023年05月24日 10:43:53

    STM32无法连接JLink(Flash读写保护)解决方法

    对于其他的stm32芯片或者其他ARM芯片,其实解决方法都相通,主要就是先修改启动方式,再去更改flash或者ram中的程序。
    的头像 发表于 05-05 12:24 2695次阅读
    <b class='flag-5'>STM32</b>无法连接JLink(<b class='flag-5'>Flash</b>读写<b class='flag-5'>保护</b>)解决方法