打印
[应用相关]

STM32对内部Flash的保护措施

[复制链接]
724|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
309030|  楼主 | 2015-11-17 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32对内部Flash的保护措施     
       所有STM32的芯片都提供对Flash的保护, 防止对Flash的非法访问 —写保护和读保护。   
1)、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读 保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:     
a、通过调试器(JTAG或SWD);   
b、从RAM中启动并执行的程序;      
2)、写保护是以四页(1KB/页) Flash存储区为单位提供写保护,对被保护的页实施编程或擦除操作将不被执行,同时产生操作错误标志。
读与写设置的效果见下表:      
读保护     写保护       对Flash的操作功能      
有效         有效         CPU只能读,禁止调试和非法访问。      
有效         无效         CPU可以读写,禁止调试和非法访问,页0~3为写保护。      
无效         有效         CPU可读,允许调试和非法访问。      
无效         无效         CPU可以读写,允许调试和非法访问。
3)、当Flash读保护生效时,CPU执行程序可以读受保护的Flash区,但存在两个例外情况:  
a、调试执行程序时;      
b、从RAM启动并执行程序时;  
      STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 ~ 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。
4)、Flash保护相关函数
FLASH_Unlock();   //Flash解锁           
FLASH_ReadOutProtection(DISABLE);  //Flash读保护禁止            
FLASH_ReadOutProtection(ENABLE);   //Flash读保护允许
沙发
lefeng| | 2015-11-17 21:24 | 只看该作者
也是因为这个,在写flash时才要先解锁再擦除的吧

使用特权

评论回复
板凳
734774645| | 2015-11-17 21:48 | 只看该作者
  STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 ~ 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。
应该写的时候先清零再写吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

638

帖子

0

粉丝