
RAM中跑程序,STM32清除Flash读保护 ' B2 u* O. U- V) I! |& q& ~: O 当给STM32 Flash加读保护后,想再次烧写,都变得不可能,更不用说Debug调试了。 ![]() * e( j4 _; J; y( C1 P 清除STM32 Flash读保护的方法有几种:2 e i8 [* l+ Q: x( q 1、boot0拉高,从ISP启动,用串口工具软件“STMFlashLoader Demo.exe”,或者第三方的软件,连接后可清除读保护;) `/ m+ N! a% ~; d" P$ I 2、使用ST-Link连接,用STM32 ST-LINK Utility清除读保护; 3、从RAM中跑程序,清除读Flash保护。因为Flash加读保护后,是无法再次下载程序的,因此只能从RAM中跑程序。 ; w `5 w$ v8 j# @ 前两种方法使用比较简单,网络上介绍也不少,唯独第三种方法用的比较少。可能是因为需要根据STM32型号修改程序,调用相应的函数库,还得修改.ini文件,较麻烦一点吧。但是从RAM中跑程序,却是万能的,不管是哪个STM32片片,不管你什么Link,都可以。& G: x* y. h3 v0 U/ ~' J T 基于RAM中跑程序,STM32清除Flash读保护的方法。几年前遇到此问题,也是找了一些资料,尝试成功。一直未发贴分享,当时比较忙,过后感觉也没发的必要了(主要还是人懒)。: o/ L# G3 T, i. `/ L 最近发现,坛子里有些小伙伴,也遇到由于Flash加读保护后,而不知所措的情况。 & |* \0 [. I9 P/ B) y7 x 重新截图发贴就没必要了,现将以前整理的文档和工程附件分享,欢迎小伙伴位测试: (测试程序MCU型号为STM32F103CBT8,如果非F103系列,那么需要自行更改相应库设置。). Z, D! W/ ^) L% C6 i1 P ![]() |
只要加了读保护,就无法读出来。解除读保护的操作,会自动清除Flash的内容。