博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32-对芯片启动读保护,实现加密(详解)
阅读量:6220 次
发布时间:2019-06-21

本文共 786 字,大约阅读时间需要 2 分钟。

STM32可以对存储在flash上的程序进行读保护.

  • 启动读保护后,用户就不能再读写程序了.
  • 所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空flash上的程序

 

头文件位于:#include "stm32f10x_flash.h"

 

启动保护,用在main()函数初始化时调用:

void Set_Protect(void) //启动保护{   if(FLASH_GetReadOutProtectionStatus() != SET)  {     FLASH_Unlock(); //解锁      FLASH_ReadOutProtection(ENABLE);    FLASH_Lock();//上锁   } }

注意:

当代码第一次调用Set_Protect()函数启动读保护时。

期间不能再次调用Off_Protect()函数关闭读保护,需要重新断电才能关闭读保护(因为Flash状态启动读保护后,不能立即设置Status=1)

 

关闭读保护,在串口接收某个有效数据或按下某个按键时,调用:

void Off_Protect(void) //关闭保护{   if(FLASH_GetReadOutProtectionStatus() != RESET)  {    FLASH_Unlock(); //不解锁FALSH也可设置读保护     FLASH_ReadOutProtection(DISABLE);    FLASH_Lock();//上锁   } }

 

运行测试

1.第一步,下载程序

2.下载成功后,再次烧写程序,校验是否启动读保护(因为启动读保护后,不能进行读写程序了)

 

3.通过ST-LINK Utility工具尝试连接芯片,发现确实不能读数据了

然后只要代码调用Off_Protect()函数,便可以取消保护了

 

 

具体参考:

 

转载地址:http://ppoja.baihongyu.com/

你可能感兴趣的文章
vi与vim
查看>>
ios之UIActivityIndicatorView
查看>>
中文编程的个人见解
查看>>
spring可以get到bean,注入却为空
查看>>
POJ 3370 Halloween treats【抽屉原理】
查看>>
mariadb读写分离
查看>>
表单中的中文提交保存到数据库变成乱码
查看>>
arcgis api for js简要笔记
查看>>
统计难题
查看>>
数据结构与算法----->数据结构----->红-黑树
查看>>
Cable master
查看>>
Docker - mysql
查看>>
Attempting to add QLayout "" to MainWindow "", which already has a layout
查看>>
ArcGIS10.1的安装问题
查看>>
Android Studio中 图片资源存在但是运行时报错的问题
查看>>
vue生命周期(简短精干篇)
查看>>
c#实现识别图片上的验证码数字
查看>>
php编译安装过程中遇到问题
查看>>
huffman树即Huffma编码的实现
查看>>
样式问题
查看>>