当前位置:首页 > 公众号精选 > 玩转单片机与嵌入式
[导读]▼点击下方名片,关注公众号▼欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【加群】,限时免费进入知识共享群;回复【3D封装库】,常用元器件的3D封装库;回复【电容】,获取电容、元器件选型相关的内容;回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料回复【...






如果你还不了解什么是STM32对其Flash的保护,那么今天就来给你讲解一下什么是STM32的Flash保护




01什么是Flash?



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



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



通常Flash包含几大块,这里以F40x为例:
  • 主存储器:用来存放用户代码或数据。


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


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


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





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



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



1、读保护就是大家通常说的“加密”,作用于整个Flash存储区域。如果一旦设置了Flash的读保护,那么单片机内置的Flash存储区就只能通过程序的正常执行才能读出,而不能通过下述方式读出:
(1) 使用调试器(JTAG或SWD);
(2)从内存RAM中启动并执行的程序;

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




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



当设置读保护与写保护时,其效果如下图所示:
读保护 写保护 对Flash的操作功能
有效 有效 CPU只能读,禁止调试和非法访问。
有效 无效 CPU可以读写,禁止调试和非法访问,页0~3为写保护。
无效 有效 CPU可读,允许调试和非法访问。
无效 无效 CPU可以读写,允许调试和非法访问。

1、flash保护的相关函数



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


当我们在程序的开头执行了上面的代码之后,使用j-link就不能在读出程序了,这样就实现了读保护。
3、如何通过代码解除Flash保护解除读保护可以下面代码来进行解除,我们为了方便解锁,可以设置一个按键。




End





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭