STM32 读保护功能和清除读保护功能设置.docx_第1页
STM32 读保护功能和清除读保护功能设置.docx_第2页
STM32 读保护功能和清除读保护功能设置.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STM32对内部Flash的保护措施所有STM32的芯片都提供对Flash的保护,防止对Flash的非法访问 - 写保护和读保护。1)、读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种方式读出:通过调试器(JTAG或SWD);从RAM中启动并执行的程序;2)、写保护是以四页(1KB/页) Flash存储区为单位提供写保护,对被保护的页实施编程或擦除操作将不被执行,同时产生操作错误标志。读与写设置的效果见下表:读保护写保护对Flash的操作功能有效 有效 CPU只能读,禁止调试和非法访问。有效 无效 CPU可以读写,禁止调试和非法访问,页03为写保护。无效 有效 CPU可读,允许调试和非法访问。无效 无效 CPU可以读写,允许调试和非法访问。2、当Flash读保护生效时,CPU执行程序可以读受保护的Flash区,但存在两个例外情况:1)、调试执行程序时;2)、从RAM启动并执行程序时STM32还提供了一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。3、Flash保护相关函数FLASH_Unlock();/Flash解锁FLASH_ReadOutProtection(DISABLE);/Flash读保护禁止FLASH_ReadOutProtection(ENABLE);/Flash读保护允许4、stm32置读保护跟清读保护操作功能:读保护设置后将不能读出flash的内容;当解除读保护的时候stm32会自动擦出整篇flash;读保护设置:在程序的开头加入“读保护”代码,即实现了读保护功能;(每次程序运行先开保护)解除读保护:解除读保护可以设置在按键里面,方便实现解锁,也不可不设按键在RAM中执行程序再清除读保护;(1)设置读保护:intmain(void).if(FLASH_GetReadOutProtectionStatus()!=SET)/FLASH_Unlock();不解锁FALSH也可设置读保护?FLASH_ReadOutProtection(ENABLE);.while(1).这个写到程序当中并执行过后,使用j-link就不能读出程序了,就是读保护了!没有使用此程序可以读出下载到芯片中的程序,但是如果使用了此程序就无法读出程序了。但是也无法再次烧写新的程序到芯片中了(要测试请慎重!)可以在主程序当中设置一按键专门清除“读保护”,一旦按下按键则清除“读保护”时芯片可以重新被烧写。(2)解除读保护:在程序中的某个操作中(如按键等)加入如下代码,执行后代码自己杀死了自己!if(FLASH_GetReadOutProtectionStatus()!=RESET)FLASH_Unlock();FLASH_ReadOutProtection(DISABLE);这些函数在stm32f10x_flash里面,注意:调用上面这个库的时候需在#includestm32f10x_flash.h前加#define_FLASH_PROG;否则报(没有定义)错。如果你没有做按键清除读保护这一步还有方法二补救:专门写一个清除“读保护”程序,使用RAM中运行程序的方法,运行此程序解锁“读保护”,执行后,FLASH会自动全部擦除。代码如下:intmain(void)Chinp_Init();FLASH_Unlock();FLASH_ReadOutProtection(DISABLE);对于在RAM中运行程序,说明如下:(1)我使用IAR+J-Link,不用把Boot0和boot1脚设置成从RAM启动也可在RAM中调试(我是设置成从FLASH启动)。(2)在IAR环境中设置Link文件为lnkarm_ram.xcl(3)Debuger选项Downloadtab中勾全部去掉。按上面设置完成后,按Debug按钮,执行上面程序,读保护可解除。*华丽丽的分割线*if(FLASH_GetReadOutProtectionStatus()=RESET)FLASH_Unlock();FLASH_ReadOutProtection(ENABLE);*华丽丽的分割线*if(FLASH_GetReadOutProtectionStatus()=SET)FLASH_Unlock();FLASH_ReadOutProtection(DISABLE);CPUFlash读保护使能后,仿真器调试会失败。J-LINK有个解锁菜单,需要解锁才能正常再次烧写程序。当然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论