阿里兄 发表于 2020-7-4 11:41:43

STM32开启读保护功能后,同时也启动了一个特别的保护

本帖最后由 阿里兄 于 2020-7-4 11:44 编辑

STM32开启读保护功能后,同时也启动了一个特别的保护

1、我们的程序生产时是启用读保护的,且是使用IAP+APP的形式。
2、当我们发现IAP有BUG或想增加功能时,想通过APP来更新IAP功能。
3、想法是好的,现实是残酷的,这是因为,STM32开启读保护功能后,同时也启动了提供了一个特别的保护。
4、即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第 0 ~ 3 页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。
5、也就是说IAP所在的前面0-3页不可写,如果强制写还可能破坏掉原有的IAP。
6、另外能不能通过代码解除读保护,来解除写保护呢,答案是不能,因为在解除读保护时,STM32会清空FLASH,这就是代码自己杀死自己了。






页: [1]
查看完整版本: STM32开启读保护功能后,同时也启动了一个特别的保护