Keil使用Debug調試模式時出現的幾種錯誤總結


Keil版本:keil4V4.60      

調試器:j_link

1.在使用j-link下載程序時,target options中的debug選項中選擇了j-link選項后,出現了J-LINK the connected emulator is a j-link clone問題,然后keil軟件自行關閉。

解決方式:用SEGGER安裝目錄下的JLinkARM.dll替換掉MDK安裝目錄下的./ARM/Segger/JLinkARM.dll就可以了

2.出現了TCK (pin 9) low, but should be high. Please check target。。。的錯誤
解決方式:首先先檢查原理圖中是不是接錯線了(就我而言,錯的實在是太離譜,電源和地接反,而且BOOT0引腳完全沒有接地),當我將這些個問題解決掉了之后,設置target options->Debug->右上角Use->Setting->Debug->Port選擇SW選項。

3.在解決第二個問題之后,出現了未發現CPU的錯誤。
解決方式:這個問題的解決方式是在target options中的Utilities選項中點擊Settings在Programming Algorithm選擇框內添加芯片的類型(就我而言是STM32F10x 128K的)就行。

4.在debug模式下進行調試時,發現程序沒有從main函數進行運行,而是一直在匯編代碼BKPT那里停下,當點復位時,到了systemInit那里
解決方式:我在網上查找資料,一般的解決方式有以下的幾種:
1).工程所在目錄存在漢字目錄或目錄路徑過深(由於所用軟件絕大部分為外國軟件且可能都是破解版,導致對漢字支持較差);
實測工程漢字目錄較長(大概30個漢字)且目錄路徑較深(7級),導致進入調試模式單步執行了 2 步,就出現了 IDE 已停止工作,KEIL 崩潰
2).KEIL 軟件本身一些必要的配置,即Target Options Configure的Dubug選項下面選擇Run to main()
3).程序中存在的問題,就好比上述使用了未實現 printf() 函數或未實現的函數、條件宏等;
4).硬件問題,當然做個最簡單的流水燈便能排除。
我的問題就出在第三點,函數中使用了printf函數,但是沒有在Target Options Configure的Target那欄里把Use MicroLIB這個選項選擇上。之后將其選擇上編譯下載程序,就能在debug下進入到main函數。

5).在Debug模式下進行調試時,出現了BP could not be set!
......
Probably too many Breakpoints defined?的錯誤,原因是因為定義了太多的斷點。
解決方法: <1>、調試時減少斷點的個數。
      <2>、設置如下:Target Options->debug->Settings(右上角,Use)->不選擇Cache Code和Cache Memory選項然后保存退出。如果按照這種設置,在各個斷點之間進行運行時,需先運行,所以稍微有點慢。
具體參考:http://www.openedv.com/thread-23050-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM