flash写保护原理_stm32对flash的读写保护与解除

本文介绍了STM32芯片对内部Flash的读写保护功能,包括读保护和写保护的机制及效果。读保护可防止非法访问,而写保护则按页进行,即使在读保护状态下,第0~3页仍默认为写保护。提供了相关函数如FLASH_ReadOutProtection()用于设置和解除读保护,并给出了设置与解除保护的代码示例。在读保护启用后,芯片无法再烧录新程序,需解除保护才能继续编程。
摘要由CSDN通过智能技术生成

一、STM32对内部Flash的保护措施

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

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

2、写保护是以四页(1KB/页) Flash存储区为单位提供写保护,对被保护的页实施编程或擦除操作将不被执行,同时产生操作错误标志。

读与写设置的效果见下表:读保护写保护对Flash的操作功能

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

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

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

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

二、当Flash读保护生效时,CPU执行程序可以读受保护的Flash区,但存在两个例外情况:

1、调试执行程序时;

2、从RAM启动并执行程序时

STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 ~ 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。

三、Flash保护的相关函数

FLASH_Unlock();   //Flash解锁

FLASH_ReadOutProtection(DISABLE);  //Flash读保护禁止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值