讲讲STM32单片机Flash的读保护和写保护
时间:2021-11-15 14:54:44
手机看文章
扫描二维码
随时随地手机看文章
[导读]▼点击下方名片,关注公众号▼欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【加群】,限时免费进入知识共享群;回复【3D封装库】,常用元器件的3D封装库;回复【电容】,获取电容、元器件选型相关的内容;回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料回复【...
通常Flash包含几大块,这里以F40x为例:
-
主存储器:用来存放用户代码或数据。
-
系统存储器:用来存放出厂程序,一般是启动程序代码。
-
OTP 区域:一小段一次性可编程区域,供用户存放特定的数据。
-
选项字节:存放与芯片资源或属性相关的配置信息。
02什么是STM32对内部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如何设置读保护?
我们只需要在程序开头加入“设置读保护”的代码就可以,这样就可以在每次运行代码的时候都检查一下,如果没有开的话就打开,如果开了就跳过。下面是读保护的代码:
3、如何通过代码解除Flash保护解除读保护可以下面代码来进行解除,我们为了方便解锁,可以设置一个按键。