JLink突然连接不上MCU的处理方法

文章目录

JLink突然连接不上MCU的处理方法

概述

用eclipse-embedcpp + JLink-edu-mini单步调试LPC1768的固件工程。

开始是能正常用的,后来修改了编译选项,尝试将PC设置到0xCC, 准备看看reset入口的汇编实现.

突然就报错,连接不上板子了。

因为0xcc是reset入口,不知道在那里设置断点,会不会影响汇编代码和JLink.

可以尝试用进入ISP模式(openpnp - MKS SGEN_L V2.0-002 烧录bootloader),用Flash Magic清除有代码的扇区,等扇区空检查都为空时,再离开ISP模式,用JLink再连接板子试试。

进入ISP模式,用Flash Magic读取签名,读取扇区,都是正常的。说明MCU还是好的。

看JLink的官方说明,如果代码不合适,导致JTAG被禁止,也可能无法用JLink连接MCU.
https://kb.segger.com/J-Link_cannot_connect_to_the_CPU#Target_connection

可能将PC指向0xcc, 也会导致JLink通讯异常。已经将eclipse-embedcpp的调试配置改了,去掉了设置PC的值为0xcc.

用J-Link Commander V8.94再去连接MCU, 已经正常了。可能就是将PC值改到0xcc引起的问题。

连接时,看到JLink-edu-mini全速是12MHZ, 将速度设置为12000kHz, 果真可以正常通讯。

可以再拿J-Flash V8.94去试试,将速度设置为12MHZ, 读取全片只要0.1S. 只有test是不行的,会闪退,应该是JFlash有bug.

用JLinkGDBServer.exe试试,也是正常的。

备注

那以后就不能做将PC设置为0xcc这种操作了。

那如何实际单步reset入口的汇编代码呢?

备注 - 确实是设置了PC值引起的问题

尝试将PC值改为0,再调试,又连不上MCU了。问题重现了。

按下reset键也不好使。

看来PC值不能改。

还是要用Flash Magic来救场,试了,不需要将有代码的页都清空,只需要将第1个页(前4KB, 0x1000)清空就正常了。

备注 - 可能是调试配置被自己改乱了

不确定调试配置改啥了,即使是不设置PC值,只要一调试,就会让JLink无效,但是可以用Flash Magic来救场.

那将现在的调试配置删了吧,重新建立一个JLink的调试配置,只改必须的设置,其他用eclipse-embedcpp默认的。

不行,删除后新建的配置,大部分选项都是和旧配置一样的。

那我将工程重新导入一次,然后再新建调试配置试试。

退出eclipse-embedcpp,清空工作区。

在工程目录中,删掉eclipse-embedcpp的4个配置文件。

这就干净了。

然后打开脚本start_only_embedcpp.bat,自动启动eclipse-embedcpp,重新引入makefile工程。

设置了工具链,工程编译过了。

设置了MCU的CMSIS包

建立调试配置,选择了elf, 设置了C:\Program Files\SEGGER\JLink\JLinkGDBServerCL.exe, 其他啥也没敢改。

查看Startup页的配置值,已经恢复成eclipse-embedcpp给的默认值了。

看来调试选项的默认值,是跟着工作区走的。

现在调试正常了。

备注

当硬件调试器不能用时,先别怀疑硬件(JLink, MCU)坏了.

可以先找调试器相关的工具(J-Link Commander V8.94, J-Flash V8.94), 看看能不能通过调试器连接MCU?

再用MCU相关的工具(Flash Magic), 看看MCU的签名是否能读到?FLASH是否能读写?

如果上述2项测试可以,那么说明可能是写固件代码软件(IDE)的调试配置可能有问题,或者代码本身有问题(是否禁止了JTAG接口?)

总之,自己在安静的调试,硬件都没动,硬件没有那么容易坏的,也不应该是硬件的问题。

END

相关推荐
LostSpeed1 天前
eclipse-embedcpp + JLink-edu-mini + MKS SGEN_L V1.0 调试固件工程 v1
eclipse·lpc·jlink·embedcpp
LostSpeed6 天前
openpnp - Smoothieware - MKS SGEN_L V1.0 + JLink-edu-mini 连接测试
openpnp·jlink·mks·smoothieware
Mr_Johhny9 个月前
Eclipse IDE for ModusToolbox™ 3.4环境通过JLINK调试CYT4BB
jlink·cyt4bb·modustoolbox
【 STM32开发 】9 个月前
STM32 -- 仿真器 ST-Link、J-Link 的连接、参数设置
stm32·物联网·jlink·stlink·仿真器·烧录器
乔宕一1 年前
在 vscode + cmake + GNU 工具链的基础上配置 JLINK
vscode·gnu·jlink
不咸不要钱2 年前
FreeRtos学习笔记(12)systemView 分析任务调度情况
单片机·freertos·任务调度·jlink·systemview
CodingCos2 年前
【ARMv8M Cortex-M33 系列 2.3 -- SEGGER JFlash 烧写命令介绍】
cortex-m33·jflash·jlink·segger