0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼單步調(diào)試失聯(lián)原因及解決方法

GReq_mcu168 ? 來源:魚鷹單片機(jī) ? 作者:魚鷹單片機(jī) ? 2022-07-04 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

不知道你是否有這樣的體驗(yàn):代碼單步調(diào)試,調(diào)著調(diào)著,出現(xiàn)了下面的提示框:

很多時(shí)候,莫名其妙,一般情況,只能退出調(diào)試,再重新進(jìn)入。

一般沒啥影響,但有的時(shí)候,我們是為了抓 BUG 現(xiàn)場才進(jìn)入的調(diào)試模式《BUG 終結(jié)者,現(xiàn)場抓獲!|顛覆認(rèn)知》,一旦因?yàn)槭?lián)導(dǎo)致不能繼續(xù)調(diào)試,估計(jì)得罵娘了(BUG 容易復(fù)現(xiàn)還好,下次在來,但是很難復(fù)現(xiàn)的話,就麻煩大了)。

那會是什么導(dǎo)致失聯(lián)了呢?

魚鷹總結(jié)了以下幾種可能:

1、調(diào)試器連線(PC 到調(diào)試器,調(diào)試器到芯片)不正常。

2、MDK 軟件問題

3、MDK 工程兼容問題

4、看門狗復(fù)位(窗口、獨(dú)立看門狗)

連線問題好解決,各種換即可,MDK 軟件問題,只能說盡量找個(gè)穩(wěn)定的版本了。另外就是 MDK 工程兼容的問題,比如這個(gè)項(xiàng)目開始不是你負(fù)責(zé)的,后來你入職了,用了另一個(gè)版本的 MDK,再次打開這個(gè)工程的時(shí)候,就可能出現(xiàn)問題,一般來說,這種情況下,不要嫌麻煩,直接新建工程即可(可以看這篇筆記《如何快速更換 MDK 工程?》)。

還有一種很容易忽略的可能是,項(xiàng)目代碼開啟了看門狗,單步調(diào)試時(shí)間太長,沒有及時(shí)喂狗導(dǎo)致復(fù)位。

此時(shí),我們又該如何解決呢?這就是本篇筆記的重點(diǎn)。

參考手冊最后面,我們可以看到這個(gè)寄存器 DBGMCU_CR。

這里我們看看獨(dú)立看門狗這個(gè)位的介紹:

可以看到,這個(gè)作用就是,當(dāng)我們進(jìn)入調(diào)試狀態(tài)時(shí),看門狗計(jì)數(shù)器停止工作。

F103 函數(shù)設(shè)置如下:

DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);

什么意思?就是說,當(dāng)我們在單步調(diào)試,程序停下來進(jìn)行分析的時(shí)候,因?yàn)樵O(shè)置了該位,就可以讓計(jì)數(shù)器不工作,這樣一來,即使停止再久的時(shí)間,只要在調(diào)試模式下,都不會因?yàn)榭撮T狗而復(fù)位,因?yàn)橛?jì)數(shù)器已經(jīng)不工作了,也就不能觸發(fā)復(fù)位動作了。而一旦退出調(diào)試模式,看門狗繼續(xù)正常工作。

這樣也就不會導(dǎo)致前面說的失聯(lián)問題,可以讓你專心分析代碼邏輯。

那如果說,原來的代碼沒有考慮這個(gè)點(diǎn),沒有配置這個(gè)位,咋辦?

如果看門狗超時(shí)時(shí)間比較長(十幾秒以上),你完全可以在進(jìn)入調(diào)試模式后,從容打開寄存器窗口,手動設(shè)置該位,這樣臨時(shí)抱佛腳的行為也能起作用。

那如果只有幾秒鐘咋辦?手動操作可能根本來不及,魚鷹在此再支一招:

使用 MDK 中的 ini 文件,讓其進(jìn)入調(diào)試模式的同時(shí),自動設(shè)置該位,相當(dāng)方便。

那如果是毫秒級別的呢?自求多福吧,或許 ini 的方法可以解決,或許進(jìn)入調(diào)試模式后,在程序運(yùn)行的時(shí)候(別停!!!),先用 MDK 的命令窗口或寄存器窗口設(shè)置一下該位,再停止程序運(yùn)行去分析問題。

總之,一定要先把這個(gè)位給設(shè)置了再慢慢調(diào)試分析,否則,可能調(diào)著調(diào)著,最終調(diào)了一個(gè)寂寞。

原文標(biāo)題:代碼調(diào)著調(diào)著就失聯(lián)了???

文章出處:【微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    610

    瀏覽量

    34603
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4892

    瀏覽量

    70416
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    211

    瀏覽量

    32584

原文標(biāo)題:代碼調(diào)著調(diào)著就失聯(lián)了???

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Keil單步調(diào)試顯示在USBPHYC狀態(tài)校驗(yàn)中計(jì)數(shù)超時(shí)導(dǎo)致進(jìn)入異常,要如何解決這個(gè)問題呢?

    Keil單步調(diào)試顯示在USBPHYC狀態(tài)校驗(yàn)中計(jì)數(shù)超時(shí)導(dǎo)致進(jìn)入異常。要如何解決這個(gè)問題呢?
    發(fā)表于 06-17 07:58

    電機(jī)常見故障分析及解決方法

    電機(jī)在運(yùn)行過程中可能會出現(xiàn)多種故障,以下是一些常見故障的分析及解決方法: 一、機(jī)械故障 1. 軸承損壞或磨損 ? ?● 故障表現(xiàn):電機(jī)運(yùn)轉(zhuǎn)不平穩(wěn),產(chǎn)生異響,嚴(yán)重時(shí)甚至停轉(zhuǎn)。 ? ?● 原因分析:通常
    的頭像 發(fā)表于 04-25 15:20 ?625次閱讀
    電機(jī)常見故障分析及<b class='flag-5'>解決方法</b>

    變頻器無法進(jìn)行調(diào)速的原因解決方法

    ,還可能對設(shè)備造成損害。本文將從多個(gè)角度探討變頻器無法進(jìn)行調(diào)速的原因,并提供相應(yīng)的解決方法,以幫助技術(shù)人員快速定位問題并恢復(fù)變頻器的正常工作。 ? ? ? 首先,變頻器無法進(jìn)行調(diào)速的一個(gè)常見原因是其輸出的最大扭矩小于負(fù)載
    的頭像 發(fā)表于 02-07 15:50 ?800次閱讀
    變頻器無法進(jìn)行調(diào)速的<b class='flag-5'>原因</b>和<b class='flag-5'>解決方法</b>

    無線收發(fā)器有雜音滋滋滋的原因解決方法

    本文將深入探討無線收發(fā)器產(chǎn)生雜音的原因,并提供相應(yīng)的解決方法
    的頭像 發(fā)表于 01-29 15:35 ?1847次閱讀

    無功補(bǔ)償故障原因解決方法

    無功補(bǔ)償故障可能由多種原因引起,以下是一些常見的故障原因及其解決方法
    的頭像 發(fā)表于 01-29 14:25 ?1223次閱讀

    電子焊接的常見問題及解決方法

    問題及解決方法: 焊點(diǎn)虛焊 原因分析 :虛焊是指焊點(diǎn)表面看似焊接良好,但實(shí)際上焊料與焊件之間沒有形成良好的冶金結(jié)合。虛焊的原因可能是焊接時(shí)間過短、焊接溫度過低、焊料質(zhì)量差等. 解決方法
    的頭像 發(fā)表于 01-09 10:28 ?1093次閱讀

    gitee 常見問題及解決方法

    Gitee作為國內(nèi)的代碼托管平臺,在使用過程中可能會遇到一些問題。以下是一些常見問題及其解決方法: 一、倉庫創(chuàng)建與代碼推送問題 倉庫已存在遠(yuǎn)程配置 問題 :在嘗試為已有項(xiàng)目添加遠(yuǎn)程倉庫配置時(shí),可能會
    的頭像 發(fā)表于 01-06 10:06 ?1219次閱讀

    干法刻蝕側(cè)壁彎曲的原因解決方法

    本文介紹了干法刻蝕側(cè)壁彎曲的原因解決方法。 什么是側(cè)壁彎曲? 如上圖,是典型的干法刻蝕時(shí),側(cè)壁彎曲的樣子,側(cè)壁為凹形或凸形結(jié)構(gòu)。而正常的側(cè)壁幾乎是垂直的,角度接近 90°。 ?什么原因導(dǎo)致了側(cè)壁
    的頭像 發(fā)表于 12-03 11:00 ?874次閱讀
    干法刻蝕側(cè)壁彎曲的<b class='flag-5'>原因</b>及<b class='flag-5'>解決方法</b>

    BGA焊接產(chǎn)生不飽滿焊點(diǎn)的原因解決方法

    BGA問題,其根本原因是焊點(diǎn)錫膏不足,下面深圳佳金源錫膏廠家來講解一下原因解決方法有哪些?一、產(chǎn)生原因BGA維修過程中遇到的不飽滿焊點(diǎn)的另一個(gè)常見產(chǎn)生
    的頭像 發(fā)表于 11-18 17:11 ?949次閱讀
    BGA焊接產(chǎn)生不飽滿焊點(diǎn)的<b class='flag-5'>原因</b>和<b class='flag-5'>解決方法</b>

    回饋式直流電子負(fù)載常見故障及解決方法

    回饋式直流電子負(fù)載在使用過程中可能會遇到各種故障,以下是幾種常見的故障及其相應(yīng)的解決方法: 一、輸入電源故障 可能原因:電源輸入不穩(wěn)定或斷電。 解決方法:檢查電源輸入線路,確保電源穩(wěn)定。 二、 輸出
    的頭像 發(fā)表于 10-18 16:18 ?803次閱讀
    回饋式直流電子負(fù)載常見故障及<b class='flag-5'>解決方法</b>

    電源時(shí)序器跳閘的原因解決方法

    電源時(shí)序器跳閘是一個(gè)常見的電氣問題,它可能由多種因素引起,包括電源電壓不穩(wěn)定、電路短路、過載電流以及時(shí)序器本身的故障等。下面將詳細(xì)分析電源時(shí)序器跳閘的原因及相應(yīng)的解決方法
    的頭像 發(fā)表于 09-29 16:28 ?2549次閱讀

    CAN盒指示燈不亮的解決方法

    CAN盒指示燈不亮可能有多種原因,以下是一些常見的解決方法。
    的頭像 發(fā)表于 09-20 14:53 ?1714次閱讀

    pwm同步調(diào)制和異步調(diào)制的區(qū)別

    PWM(Pulse Width Modulation,脈沖寬度調(diào)制)是一種常見的調(diào)制方式,廣泛應(yīng)用于通信、控制等領(lǐng)域。PWM調(diào)制分為同步調(diào)制和異步調(diào)制兩種方式,它們在性能、應(yīng)用場景等方面存在一定
    的頭像 發(fā)表于 08-14 11:15 ?3981次閱讀

    服務(wù)器錯(cuò)誤是怎么回事?常見錯(cuò)誤原因解決方法匯總

    服務(wù)器錯(cuò)誤是怎么回事?最常見的原因分有六個(gè),分別是:硬件問題、軟件問題、網(wǎng)絡(luò)問題、資源耗盡、數(shù)據(jù)庫、文件權(quán)限問題??梢愿鶕?jù)以下具體錯(cuò)誤原因進(jìn)行辨別,并選擇適合的解決方法。關(guān)于常見服務(wù)器原因
    的頭像 發(fā)表于 08-12 10:11 ?2166次閱讀

    ESP-IDF單步調(diào)試就報(bào)錯(cuò)怎么解決?

    /item.htm?_u=63g ... 1910969830),想做LVGL的開發(fā),現(xiàn)在想做單步調(diào)試,完全找不到方向,不知道怎么進(jìn)行,查了一些資料,現(xiàn)在OPENOCD已經(jīng)正常了,但是一開始調(diào)試就彈出錯(cuò)誤提示
    發(fā)表于 07-02 08:30

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品