STM32-对芯片启动读保护,实现加密(详解)
2023-09-27 14:28:33 时间
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()函数,便可以取消保护了
具体参考:https://wenku.baidu.com/view/e086f59dc8d376eeafaa3116.html
相关文章
- 笔试题-2023-华为-数字芯片(第2套)【纯净题目版】
- 云知声发布多模态 AI 芯片战略,同步曝光三款在研芯片
- 【33】解读TPU:设计和拆解一块ASIC芯片
- A7芯片 IOS降级 跳过ID | ipad Mini2降级 10.3.3
- nxp基于layerscape系列芯片的硬件型号解析
- 心电芯片ADS1292 KS1081 AD8232等的比较
- 泰凌微TLSR8258芯片解决方案开发之串口打印级别设置
- IT编程考古之苹果漫长的芯片研发之旅M1 Pro
- 车用芯片商争相杀入安全等级竞赛:目标ASIL D
- 芯片设计通信业一枝独秀 其他领域增长迟缓
- zigbee芯片 - JN5169
- 受益于A10芯片 台积电第三季度营收或创新纪录
- iPhone芯片、Mac芯片、耳机芯片,苹果为何急于设计自己的芯片?
- 三星逐渐摆脱依赖高通芯片:开始自己生产GPU
- 恶毒且最聪明的后门 可嵌入头发直径千分之一的芯片中
- 摩尔定律堪称不死神话: IBM开发5纳米芯片