
RAM中跑程序,STM32清除Flash读保护 当给STM32 Flash加读保护后,想再次烧写,都变得不可能,更不用说Debug调试了。6 A3 n& i, }6 q- ~ ![]() ' w; ~( L7 P3 r& t 清除STM32 Flash读保护的方法有几种:; P0 z/ z3 h1 ?/ {% b 1、boot0拉高,从ISP启动,用串口工具软件“STMFlashLoader Demo.exe”,或者第三方的软件,连接后可清除读保护; 2、使用ST-Link连接,用STM32 ST-LINK Utility清除读保护;, J) A% F2 v ?1 D* D; U* l/ s# T 3、从RAM中跑程序,清除读Flash保护。因为Flash加读保护后,是无法再次下载程序的,因此只能从RAM中跑程序。! J2 s/ y$ M& U$ h0 U5 y Y2 Y! s* [ 前两种方法使用比较简单,网络上介绍也不少,唯独第三种方法用的比较少。可能是因为需要根据STM32型号修改程序,调用相应的函数库,还得修改.ini文件,较麻烦一点吧。但是从RAM中跑程序,却是万能的,不管是哪个STM32片片,不管你什么Link,都可以。 + g* O: G' g# P1 {+ i# T- \" Y & F+ B' I+ j9 n% O, z 基于RAM中跑程序,STM32清除Flash读保护的方法。几年前遇到此问题,也是找了一些资料,尝试成功。一直未发贴分享,当时比较忙,过后感觉也没发的必要了(主要还是人懒)。 最近发现,坛子里有些小伙伴,也遇到由于Flash加读保护后,而不知所措的情况。% p- X+ }3 f* T B. H) K# n 9 @# K7 A: k6 y) x+ V! a4 q . J0 {, h! i5 x 重新截图发贴就没必要了,现将以前整理的文档和工程附件分享,欢迎小伙伴位测试:7 d# V$ j0 k! y; K: h (测试程序MCU型号为STM32F103CBT8,如果非F103系列,那么需要自行更改相应库设置。)2 T; [# y, l2 x. d4 q9 `" r0 b 9 D/ ^' i# o6 y( {% ~" Y* a ![]() |
只要加了读保护,就无法读出来。解除读保护的操作,会自动清除Flash的内容。