关于MCU锁死使用仿真器的几种解决方法
在开发过程中难免遇到芯片锁死的问题解决的方法有很多包括改变BOOT0/1的电平等方式不过这种需要硬件上的改动都比较麻烦。这里介绍一下常见的几种通过仿真器解锁方式。提示下面的方法基本都是我用jlink仿真器实践过的一般都是用到SWD接口而且最好接上RST。1.全擦除后重新写入这是最容易尝试的办法就是在写入前全部擦除芯片虽然方法简单但是可能有时候会有不错的效果。有一次一个STM32H743的MCU锁死了不能下载程序了用来想到的所有方法大多都连接不上或者报错最后在多次擦除失败的情况下有一次竟然成功了这才成功抢救回来一片H743本来已经准备放弃换芯片了同时全擦还能解决读报护的芯片下载不下去的问题。之前有个项目需要开启读报护但是在调试阶段同事总是下载有问题折腾半天就是因为开启了读报护其实只要勾选全选后下载就可以了有效指数夯2.J-Link STM32 Unlock 解锁工具操作非常简单在安装jlink全家桶里就有这个软件打开后直接输入对应型号的数字就可以了。目前还没有用这个很顺利的解锁过不过每次排查的时候都会试一试这个方法有效指数NPC3.J-Link Commander感觉就是手动去执行了一边上述操作不过命令行更底层而且支持的指令多更灵活。个人确实有成功解锁过的经历。操作方式就是输入命令行指令基本操作如下connect unlock STM32H743有效指数人上人3.STM32CubeProgrammerST推出的工具支持多种连接。仿真器支持STLINK和JLINK。个人很喜欢用感觉比较好用。不过有时候也会出现连不上的情况而且连不上不提示通信异常反而说缺失什么文件我还特意换了电脑和好的板子去验证了一下软件安装问题实际就是通信异常了。有效指数夯相关知识介绍如何判断芯片是否“锁死”典型现象调试器J-Link/ST-Link不能识别到芯片 ID但无法烧录程序、无法连接 CPU 内核Can not attach to CPU报错可能包括DAP error、Error while checking CPU state、Flash Download failed常见原因RDP 读保护Level 1 或 Level 2选项字节配置错误如看门狗、低功耗模式导致 CPU 无法停止用户程序死循环或进入异常状态如未处理 HardFaultFlash 内容损坏如错误的时钟配置导致烧录失败RDP 级别详解必须了解⚠重要一旦芯片被设置为 RDP Level 2任何调试器、任何软件、任何方法都无法再连接或解锁。只能更换芯片。更多文章欢迎大家关注我的公众号