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

【负荷预测】基于VMD-CNN-LSTM的负荷预测研究(Python代码实现)内容概要:本文介绍了基于变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)相结合的VMD-CNN-LSTM模型在负荷预测中的研究与应用,采用Python代码实现。该方法首先利用VMD对原始负荷数据进行分解,降低序列复杂性并提取同频率的模态分量;随后通过CNN提取各模态的局部特征;最后由LSTM捕捉时间序列的长期依赖关系,实现高精度的负荷预测。该模型有效提升了预测精度,尤其适用于非平稳、非线性的电力负荷数据,具有较强的鲁棒性和泛化能力。; 适合人群:具备一定Python编程基础和深度学习背景,从事电力系统、能源管理或时间序列预测相关研究的科研人员及工程技术人员,尤其适合研究生、高校教师及电力行业从业者。; 使用场景及目标:①应用于日前、日内及实时负荷预测场景,支持智慧电网调度与能源优化管理;②为研究复合型深度学习模型在非线性时间序列预测中的设计与实现提供参考;③可用于学术复现、课题研究或实际项目开发中提升预测性能。; 阅读建议:建议读者结合提供的Python代码,深入理解VMD信号分解机制、CNN特征提取原理及LSTM时序建模过程,通过实验调试参数(如VMD的分解层数K、惩罚因子α等)优化模型性能,并可进一步拓展至风电、光伏等其他能源预测领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值