0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

代码单步调试失联原因及解决方法

GReq_mcu168 来源:鱼鹰单片机 作者:鱼鹰单片机 2022-07-04 16:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

不知道你是否有这样的体验:代码单步调试,调着调着,出现了下面的提示框:

很多时候,莫名其妙,一般情况,只能退出调试,再重新进入。

一般没啥影响,但有的时候,我们是为了抓 BUG 现场才进入的调试模式《BUG 终结者,现场抓获!|颠覆认知》,一旦因为失联导致不能继续调试,估计得骂娘了(BUG 容易复现还好,下次在来,但是很难复现的话,就麻烦大了)。

那会是什么导致失联了呢?

鱼鹰总结了以下几种可能:

1、调试器连线(PC 到调试器,调试器到芯片)不正常。

2、MDK 软件问题

3、MDK 工程兼容问题

4、看门狗复位(窗口、独立看门狗)

连线问题好解决,各种换即可,MDK 软件问题,只能说尽量找个稳定的版本了。另外就是 MDK 工程兼容的问题,比如这个项目开始不是你负责的,后来你入职了,用了另一个版本的 MDK,再次打开这个工程的时候,就可能出现问题,一般来说,这种情况下,不要嫌麻烦,直接新建工程即可(可以看这篇笔记《如何快速更换 MDK 工程?》)。

还有一种很容易忽略的可能是,项目代码开启了看门狗,单步调试时间太长,没有及时喂狗导致复位。

此时,我们又该如何解决呢?这就是本篇笔记的重点。

参考手册最后面,我们可以看到这个寄存器 DBGMCU_CR。

这里我们看看独立看门狗这个位的介绍:

可以看到,这个作用就是,当我们进入调试状态时,看门狗计数器停止工作。

F103 函数设置如下:

DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);

什么意思?就是说,当我们在单步调试,程序停下来进行分析的时候,因为设置了该位,就可以让计数器不工作,这样一来,即使停止再久的时间,只要在调试模式下,都不会因为看门狗而复位,因为计数器已经不工作了,也就不能触发复位动作了。而一旦退出调试模式,看门狗继续正常工作。

这样也就不会导致前面说的失联问题,可以让你专心分析代码逻辑。

那如果说,原来的代码没有考虑这个点,没有配置这个位,咋办?

如果看门狗超时时间比较长(十几秒以上),你完全可以在进入调试模式后,从容打开寄存器窗口,手动设置该位,这样临时抱佛脚的行为也能起作用。

那如果只有几秒钟咋办?手动操作可能根本来不及,鱼鹰在此再支一招:

使用 MDK 中的 ini 文件,让其进入调试模式的同时,自动设置该位,相当方便。

那如果是毫秒级别的呢?自求多福吧,或许 ini 的方法可以解决,或许进入调试模式后,在程序运行的时候(别停!!!),先用 MDK 的命令窗口或寄存器窗口设置一下该位,再停止程序运行去分析问题。

总之,一定要先把这个位给设置了再慢慢调试分析,否则,可能调着调着,最终调了一个寂寞。

原文标题:代码调着调着就失联了???

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 调试
    +关注

    关注

    7

    文章

    623

    浏览量

    35377
  • 代码
    +关注

    关注

    30

    文章

    4940

    浏览量

    73116
  • MDK
    MDK
    +关注

    关注

    4

    文章

    211

    浏览量

    33455

原文标题:代码调着调着就失联了???

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨RZ/T2H PCIe通信的调试方法

    本文阐述了RZ/T2H的PCIe外设作为EP,在Windows上做驱动开发、速率测试时,可能会遇到无法被Windows识别的问题。本文总结了一些调试方法和技巧,来排查问题原因解决方法
    的头像 发表于 11-20 16:53 4695次阅读
    瑞萨RZ/T2H PCIe通信的<b class='flag-5'>调试</b><b class='flag-5'>方法</b>

    TFT液晶屏开机时开机闪屏的原因解决方法

    解决方法。 核心原因:上电时序不同步 问题的根本原因在于:屏幕的电源、主控芯片的初始化以及信号输出,这三者没有按照正确的顺序和时序进行。 详细原因分析 1. 电源时序问题(最可能的
    发表于 10-18 11:49

    LVDS接口的显示屏,显示偏暗问题的解决方法

    问题:点亮屏幕后画面显示偏暗 可能原因: 主板输出的LVDS 模式与屏幕的不一致; PWM亮度并未调节到最亮; 解决方法 检查主板的LVDS输出模式是否和屏幕一致; 一般主板端的LVDS模式是可以配置的,配置成与屏幕相同的模式即可; 检查PWM亮度调节是否正常?或者
    发表于 10-09 15:55

    通过SEGGER JLINK调试CYUSB3014-BZXI遇到的问题求解

    运行后,程序不能在用户线程的函数暂停,在CyFxApplicationDefine函数打断点也无法停止,点击暂停按钮也无法停止程序 2、尝试单步调试程序,发现在单步跳过
    发表于 07-16 08:27

    Keil单步调试显示在USBPHYC状态校验中计数超时导致进入异常,要如何解决这个问题呢?

    Keil单步调试显示在USBPHYC状态校验中计数超时导致进入异常。要如何解决这个问题呢?
    发表于 06-17 07:58

    电机常见故障分析及解决方法

    电机在运行过程中可能会出现多种故障,以下是一些常见故障的分析及解决方法: 一、机械故障 1. 轴承损坏或磨损    ● 故障表现:电机运转不平稳,产生异响,严重时甚至停转。    ● 原因分析:通常
    的头像 发表于 04-25 15:20 3940次阅读
    电机常见故障分析及<b class='flag-5'>解决方法</b>

    变频器低电压跳闸原因解决方法和案例分析

    ,还可能对设备造成损害。因此,深入探讨变频器低电压跳闸的原因解决方法,对于提高生产效率和保障设备安全具有重要意义。 一、变频器低电压跳闸的原因分析 变频器低电压跳闸的原因多种多样,主
    的头像 发表于 04-17 15:57 1583次阅读
    变频器低电压跳闸<b class='flag-5'>原因</b>及<b class='flag-5'>解决方法</b>和案例分析

    变频器无法进行调速的原因解决方法

    ,还可能对设备造成损害。本文将从多个角度探讨变频器无法进行调速的原因,并提供相应的解决方法,以帮助技术人员快速定位问题并恢复变频器的正常工作。       首先,变频器无法进行调速的一个常见原因是其输出的最大扭矩小于负载
    的头像 发表于 02-07 15:50 2600次阅读
    变频器无法进行调速的<b class='flag-5'>原因</b>和<b class='flag-5'>解决方法</b>

    变频器无法进行快速逆转原因解决方法

    逆转的情况时有发生,这不仅影响了生产线的灵活性,还可能对设备和工作人员构成安全隐患。本文将从变频器无法进行快速逆转的原因入手,探讨相应的解决方法,旨在为工程师和技术人员提供实用的参考。       变频器无法进行快速
    的头像 发表于 02-07 09:27 1278次阅读

    无线收发器有杂音滋滋滋的原因解决方法

    本文将深入探讨无线收发器产生杂音的原因,并提供相应的解决方法
    的头像 发表于 01-29 15:35 3542次阅读

    无功补偿故障原因解决方法

    无功补偿故障可能由多种原因引起,以下是一些常见的故障原因及其解决方法
    的头像 发表于 01-29 14:25 2615次阅读

    调试ADS1271的时候,调着调着就读不出数据了,为什么?

    我在调试ADS1271的时候,开始读出数据很好,调着调着,就读不出数据了,单步调试,发现nRDY引脚,始终为高,重新上电,也无法解决。于是更换一片ads1271,可是调试一会儿,又发生了这种情况。不知道是哪的问题?
    发表于 01-15 07:25

    电子焊接的常见问题及解决方法

    问题及解决方法: 焊点虚焊 原因分析 :虚焊是指焊点表面看似焊接良好,但实际上焊料与焊件之间没有形成良好的冶金结合。虚焊的原因可能是焊接时间过短、焊接温度过低、焊料质量差等. 解决方法
    的头像 发表于 01-09 10:28 1901次阅读

    gitee 常见问题及解决方法

    Gitee作为国内的代码托管平台,在使用过程中可能会遇到一些问题。以下是一些常见问题及其解决方法: 一、仓库创建与代码推送问题 仓库已存在远程配置 问题 :在尝试为已有项目添加远程仓库配置时,可能会
    的头像 发表于 01-06 10:06 2322次阅读

    常见伺服系统故障及解决方法

    伺服系统在自动化领域中扮演着重要角色,但其运行过程中可能会遇到各种故障。以下是一些常见的伺服系统故障及其解决方法: 一、电机无法启动 故障现象 :电机无法启动,无法响应控制命令。 可能原因 : 电源
    的头像 发表于 12-10 10:21 3464次阅读