如何解决STM32芯片Flash写保护的问题

本文介绍了如何解决stm32芯片flash写保护导致无法下载程序,无法在线调试的问题;如果您遇到相同的问题,希望本文可以带来一些帮助。
1 flash的写保护
如果对flash设置了写保护,那就无法对flash进行编程和擦除。
在开发stm32的时候,如果出现这种情况,通常仿真器都支持对flash进行解锁,像jlink,stlink等仿真器都支持这个功能。
2 错误提示
在使用mdk进行调试的时候,出现报错 ==flash timeout.reset target and try it again==,具体如下图所示;
折腾了一番之后,并没有解决问题,因为使用的仿真器是stlink,因此下载了stlink utility尝试解决问题;
3 stlink utility
3.1 基本功能
stlink utility是st官方提供的免费软件,支持stm32 st-link的程序包括带有命令行界面(cli)的图形用户界面(gui)。该工具还提供了较多的其他功能,具体如下;
可以对stm32 内部存储器 (flash,ram,otp和其他存储器),外部存储器进行编程;
验证程序内容(校验和,在编程期间和之后进行校验,与文件进行比较等)
还能实现 stm32编程自动化;
另外还提供其他的功能;
3.2 解锁flash
在stlink连接目标板的情况下,打开stlink utility,在菜单栏的target下选择connect,因为这时候flash已经被锁住了,所以同样地也看到相应的错误提示 can not read memory disable read out protection and retry,具体如下图所示;
ok,下面只需要接触写保护就行了,所以在菜单栏target里打开option bytes...选项,或者直接通过快捷键ctrl+b打开,请确保当前已经正确连接了stlink和目标板,否则会出现报错;
正确连接的情况下,打开option bytes...,发现在这里read out protection选项是enable,这个表示无法通过swd读取stm32内部flash的程序。
关键点:将read out protection选项设置为disable,点击apply,这时候flash已经成功解锁了。但是同时发现,内部flash已经被擦除了;
这可能stm32的保护机制有关,防止程序被拷机,然后进行反编译破解,这样也可以提高破解的门槛。具体显示如下图所示;
完成以上步骤之后,在菜单栏target下选择disconnect,或者通过快捷键ctrl+d断开和目标板的连接;重新进入mdk,就能正常对目标板进行调试,仿真,以及程序的烧写。
3.3 写保护
在菜单栏target里打开option bytes...选项,我们还看到下面有flash sector protection选项;选择select all之后,发现所有page都已经写保护了,只要选择apply选项就可以对flash进行写保护;具体如下所示;
4 总结
对于flash写保护的问题可以结合stm32参考手册进行相应的学习,其内部flash提供相应的保护机制,本文只是结合st官方工具stlink utility解决一下常见的这个简单的问题。
笔者能力和水平有限,文中难免有错误和纰漏之处,请大佬们不吝赐教;
原文标题:如何优雅地解决stm32的flash写保护的问题?
文章出处:【微信公众号:fpga之家】欢迎添加关注!文章转载请注明出处。


好产品要有好口碑!荣耀V40用户评价视频发布,好评如潮!
盘点全球物联网看点
CES 2020:三星推出全新家电品类,三款系列冰箱产品令人眼前一亮
KUKA机器人高级编程CREAD的用法详解
AMD EPYC处理器以更大的规模驱动云原生应用程序
如何解决STM32芯片Flash写保护的问题
航空工业沈阳所采用双线作战方案已完成了全线复工工作
企业VR全景线上虚拟展厅的功能及优势的介绍
如何设计有源滤波器?有源滤波器如何选型?
美国大学研发全新可降温的“超白油漆”
自激震荡的产生及相位补偿方法
丰田高端自动驾驶商用车先用,个人使用在后
功率因数校正原理及相关IC
长时间戴耳机发炎发炎!耳机佩戴不科学小心神经性耳聋!
什么是绝缘电阻?为什么需要做绝缘电阻测试试验?
苹果或将扩大其OLED面板供应商名单,京东方或将分一杯羹
多层陶瓷电容(MLCC)的漏电原因
能变风,更舒适!Leader 风幕空调获年度行业产品奖
Elephone在网上放出了自家新旗舰elephone U2的照片
dfrobot双通道直流电机驱动板-12A简介