0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

淺析STM32調(diào)試過程中的幾個相關(guān)問題

茶話MCU ? 來源:cc ? 2019-01-21 13:50 ? 次閱讀

總的來講,單片機調(diào)試是單片機開發(fā)工作必不可少的環(huán)節(jié)。不管你愿不愿意,調(diào)試過程中總會有各種不期而遇的問題出現(xiàn)在我們面前來磨礪我們。這里分享幾點STM32調(diào)試過程中與開發(fā)工具及IDE有關(guān)的幾個常見問題,以供參考。

1、做低功耗調(diào)試時連接不上目標(biāo)板

默認(rèn)情況下,當(dāng)MCU進(jìn)入低功耗模式后,內(nèi)核時鐘停止工作,調(diào)試連接將中斷。不過,通過設(shè)置DBGMCU寄存器控制位,即使進(jìn)入低功耗模式,還是可以進(jìn)行一定程度的調(diào)試。

在保證DGBMCU控制位正確配置前提下,還需注意SWD調(diào)試腳沒有被配置為【analog state】模擬輸入狀態(tài)。我們在具體應(yīng)用時為了降低功耗可能會將芯片的包括SWD調(diào)試腳在內(nèi)的GPIO配置為模擬功能,這樣會到導(dǎo)致調(diào)試器連接不上情況。此時在連接前先做下復(fù)位,有時可能多做幾次復(fù)位才連接得上。

當(dāng)然,上面是指低功耗模式下連接不上目標(biāo)板的情況。如果是一般性的連接不上,原因就更多了,比方硬件器件、連接線路、驅(qū)動程序、用戶代碼本身等,這些要結(jié)合具體情況來分析。關(guān)于低功耗模式的調(diào)試支持,請參考各個系列參考手冊的相關(guān)描述。

2、打印輸出失敗

通常我們可以借助于串口助手做打印輸出。如果使用STM32虛擬串口,注意PC端的虛擬串口驅(qū)動程序安裝正常。相應(yīng)軟件包編號是STSW-STM32102。

再就是注意配置UART相關(guān)參數(shù)配置時,字長是包含了校驗位的。比方8位字長,它是由 7個數(shù)據(jù)位,1個校驗位組成。還有,VCP不支持字長在8位以下的傳輸。

另外,對于那些基于ARM CORTEX M3/M4/M7內(nèi)核的STM32芯片,我們可以使用SWO方式做打印輸出。

這里要注意的是:

a、不是所有MCU系列都支持SWO打印輸出;目前僅基于ARM Cortex M3/M4/M7內(nèi)核的芯片支持;

b、目前只支持SWD模式,不支持JTAG模式;

c、在調(diào)試環(huán)境里需做適當(dāng)配置和代碼補充,涉及到DBG_MCU_CR寄存器的控制位。

3、低功耗應(yīng)用中功耗數(shù)據(jù)異常

這個原因很多,比方,測量方面的原因,不屬于MCU的功耗也算進(jìn)來了;有些外設(shè)及管腳沒處理好,導(dǎo)致漏電流還在產(chǎn)生; 或者低功耗模式選擇不對,或者進(jìn)了低功耗模式馬上又醒了而誤測誤判等等。

這里再提醒1點:

設(shè)置進(jìn)入低功耗模式后,確認(rèn)是否還在調(diào)試模式。即檢查DBGMCU寄存器中與低功耗調(diào)試配置有關(guān)的寄存器控制位,確保關(guān)閉了低功耗調(diào)試狀態(tài)。做低功耗數(shù)據(jù)測試時,最好不要還連接著調(diào)試器,給我們帶來困擾。前不久就有人反映,用別的調(diào)試器連接著STM32目標(biāo)板測得功耗與用STLINK調(diào)試器連接著測得功耗大不 一樣,改用STLINK就合理了。

4、在Normal/System Reset模式下SWD連接不上目標(biāo)板

此時我們可以嘗試換個連接模式,比如Connect Under Reset,或者換個復(fù)位模式,比如Hardware Reset 。

如果說借助STLINK,即使使用Connect Under Reset或Hardware Reset方式還連接不上呢?我們可以查看下STLINK的NRST腳與目標(biāo)板上的MCU的NRST腳是否相連了。如果是nucleo板的話,還需確認(rèn)下跳線SB12是否為連接狀態(tài)。

5、MCO腳無時鐘信號輸出

我們在STM32調(diào)試過程中,有時需要引出主時鐘進(jìn)行輸出監(jiān)視,即將主時鐘通過MCO腳引出觀察。

要想正確輸出,MCO做正確配置是必須的了。當(dāng)然用CubeMx配置的話一般不會有啥大問題 。不過有個地方要注意,那個GPIO的輸出速率參數(shù)要合適配置,不同STM32系列的GPIO最大可輸出速率在數(shù)據(jù)手冊上都明確出來了。當(dāng)MCO輸出時鐘頻率較高以至于超過GPIO的輸出能力時,這時需要考慮先做分頻后再來做觀察。

一般來講,當(dāng)MCO的輸出頻率在1Mhz以上時,如果觀察到的波形帶有很嚴(yán)重的噪聲或者扁平的小幅度信號,甚至看不到輸出的時候,我們可以考慮下是否那個OSPEED參數(shù)設(shè)置得太小了;如果說看到周期較長、幅度較大帶有明顯上下峰值過沖情形的波形,我們可以考慮下是否那個OSPEED參數(shù)設(shè)置得太大了。

6、沒法對某些變量進(jìn)行計算和監(jiān)控或無法設(shè)置斷點

這個原因較多,具體到調(diào)試環(huán)境,很可能跟你編譯環(huán)境的優(yōu)化等級配置有關(guān)。

我們在MCU調(diào)試過程中,往往會用到編譯器的優(yōu)化功能來提升芯片的性能和精簡代碼空間。不過,經(jīng)過代碼優(yōu)化,往往可能給我們調(diào)試帶來些影響,主要體現(xiàn)在下面幾個方面:

a、 設(shè)置斷點方面出現(xiàn)障礙,有些代碼行沒法做斷點的設(shè)置;

b、 無法對某些變量進(jìn)行觀察;

c、 單步調(diào)試時出現(xiàn)代碼運行“不連續(xù)”的情形,即執(zhí)行到的地方和我看到的地方不一致;

因此,為了實現(xiàn)有效調(diào)試,我們在通過編譯器做優(yōu)化時要選擇合適的優(yōu)化等級?;驹瓌t是不影響調(diào)試體驗的前提下保障編譯效率。一般來講,在調(diào)試時建議將優(yōu)化等級設(shè)置在較低水平。比方KEIL MDK 推薦調(diào)試時將優(yōu)化等級設(shè)置在-O1, IAR 推薦調(diào)試時將優(yōu)化等級設(shè)置在-None,GCC推薦調(diào)試是將優(yōu)化等級設(shè)置在-Og.其實,編譯器的優(yōu)化等級設(shè)置越高,對代碼的規(guī)范性要求以及我們對編譯器的了解程度也越高。經(jīng)常有人代碼優(yōu)化前程序運行得好好的,代碼優(yōu)化等級調(diào)高好程序功能變得面目全非了。

上面提到的幾個問題及應(yīng)對措施,都是些可能性的提示或提醒,僅供參考,畢竟調(diào)試過程中出現(xiàn)的一個故障現(xiàn)象往往可以映射出多種應(yīng)用情形及具體原因。

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

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349331
  • STM32
    +關(guān)注

    關(guān)注

    2262

    文章

    10846

    瀏覽量

    353681

原文標(biāo)題:STM32調(diào)試過程中跟工具相關(guān)的幾個問題

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    為什么nulink會在調(diào)試過程中時不時的中斷?

    為啥nulink 會在調(diào)試過程中時不時的中斷?是不是要設(shè)置什么?
    發(fā)表于 01-17 06:52

    ADS1216芯片調(diào)試過程中數(shù)據(jù)采集一直不對

    有誰用過ADS1216這顆芯片啊,在調(diào)試過程中數(shù)據(jù)采集一直不對,不知道該如何配置它寄存器,具體怎么操作的,誰有demo或相關(guān)的例子程序???
    發(fā)表于 02-27 14:42

    AD芯片在調(diào)試過程中遇到的問題,應(yīng)該怎么解決?

    AD芯片在調(diào)試過程中遇到的問題,應(yīng)該怎么解決?一款TI/國半的超高速ADC調(diào)試經(jīng)驗分享
    發(fā)表于 04-09 06:41

    為什么你的示波器抓不到調(diào)試過程中的異常信號呢?

    如何讓您在調(diào)試異常信號一覽無余呢?為什么你的示波器抓不到調(diào)試過程中的異常信號呢?
    發(fā)表于 04-29 06:27

    STM32調(diào)試過程中常見的問題有哪些

    STM32調(diào)試過程中常見的問題及解決方法一、 在“Debug選項卡”下設(shè)置好仿真器的類型后,下載程序時卻提示“No ULINK Device found.” 解決辦法: Keil MDK默認(rèn)
    發(fā)表于 08-06 06:12

    STM32F103RCT6項目調(diào)試過程中遇到了一些問題

    STM32F103RCT6項目調(diào)試過程中遇到了一些問題,現(xiàn)在總結(jié)記錄一下,以留后用。程序經(jīng)過調(diào)試沒有問題,所有問題都可以說是硬件問題。出現(xiàn)的主要問題可以分為以下幾類:電源問題、時鐘問題、焊接問題。
    發(fā)表于 08-11 08:49

    記錄一次STM32H743 CANFD調(diào)試過程中的一次BUG

    記錄一次STM32H743 CANFD調(diào)試過程中的一次BUG
    發(fā)表于 08-13 06:30

    STM32的CAN總線調(diào)試過程中的一些小總結(jié)

    調(diào)試過程中的一些小總結(jié)
    發(fā)表于 08-19 06:06

    STM32調(diào)試過程中頭哪些常見的問題

    STM32調(diào)試過程中頭哪些常見的問題?怎樣去解決這些問題呢?
    發(fā)表于 11-03 06:42

    電源設(shè)計調(diào)試過程中的異常現(xiàn)象分析

    調(diào)試過程中所看到的一些異?,F(xiàn)象,以及后來的解決辦法。其實很多工程師認(rèn)為設(shè)計電源是非常重經(jīng)驗的一門技術(shù),要見多識廣。這種經(jīng)
    發(fā)表于 10-09 10:49 ?1680次閱讀

    變頻器調(diào)試過程中的注意事項及其5個因素的介紹

    變頻器的調(diào)試工作相對較復(fù)雜,一般設(shè)備使用廠家很難獨立完成,基本上都會要求變頻器生產(chǎn)廠家來協(xié)助其配合完成整個設(shè)備的調(diào)試工作。所以在變頻器的調(diào)試過程中,不論是使用廠家還是生產(chǎn)廠家都要考慮和注意這些
    發(fā)表于 11-01 09:00 ?2次下載

    單片機調(diào)試過程中調(diào)試組件導(dǎo)致的問題

    單片機調(diào)試過程中,經(jīng)常會遇到類似第3只眼的問題。何謂第3只眼呢?
    的頭像 發(fā)表于 12-30 17:12 ?7323次閱讀
    單片機<b class='flag-5'>調(diào)試過程中</b>的<b class='flag-5'>調(diào)試</b>組件導(dǎo)致的問題

    嵌入式開發(fā)過程中的一點調(diào)試經(jīng)驗

    嵌入式開發(fā)過程中的一點調(diào)試經(jīng)驗嵌入式開發(fā)最麻煩的在現(xiàn)場調(diào)試過程中或?qū)嶋H運營過程中出現(xiàn)問題很難定位。我在實際開發(fā)過程中一點經(jīng)驗分享給大家嵌入式
    發(fā)表于 11-02 18:06 ?15次下載
    嵌入式開發(fā)<b class='flag-5'>過程中</b>的一點<b class='flag-5'>調(diào)試</b>經(jīng)驗

    電磁流量計調(diào)試過程中存在的問題以及解決措施

    對流量計內(nèi)部設(shè)置參數(shù)進(jìn)行仔細(xì)檢查,還需要調(diào)試顯示數(shù)據(jù)情況和信號反饋情況,查看它們是否處于正常運行狀態(tài)下。接下來就詳細(xì)介紹電磁流量計調(diào)試過程中存在的問題以及解決措施。
    的頭像 發(fā)表于 10-27 09:08 ?1389次閱讀

    STMCU應(yīng)用過程中與電源相關(guān)的案例分享

    我們在從事STM32單片機的應(yīng)用開發(fā)及調(diào)試過程中,往往會碰到各類異常。其中有不少比例的問題跟電源有關(guān)。
    的頭像 發(fā)表于 08-04 14:52 ?542次閱讀
    STMCU應(yīng)用<b class='flag-5'>過程中</b>與電源<b class='flag-5'>相關(guān)</b>的案例分享