衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

keil在Debug的高級用法

撞上電子 ? 2024-12-26 21:01 ? 次閱讀

第一節 軟件說明

Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。目前軟件對中文的支持不友好,不建議安裝網上的一些漢化包之類的。另外建立的工程文件路徑也盡量不要存在中文,否則可能會出現一些異常。

第二節 基本調試方法

1,基本調試操作:首先點擊"Debug->Start/Stop Debug Session"或下圖2位置,進入調試:

846d5200-c389-11ef-9434-92fbcf53809c.png

如果前面工程配置里選擇了復位調試,則進入調試后,會停在main函數頭部:

8488de80-c389-11ef-9434-92fbcf53809c.png

2,復位:對程序進行復位操作,根據燒錄器不同的復位方式配置會觸發不同的復位類型。

84991a98-c389-11ef-9434-92fbcf53809c.png

3,全速運行:使當前程序開始正常全速運行,直到程序遇到斷點時停止。

84aa3a3a-c389-11ef-9434-92fbcf53809c.png

4,停止運行:當程序全速運行時,點擊此按鍵可停止程序運行,停的是當前點擊時的程序運行位置。

84bb36b4-c389-11ef-9434-92fbcf53809c.png

5,單步調試:根據當前調試的窗口的語言,執行單條語句。如果遇到函數,則會進入函數內部。如果是在反匯編窗口中,則只執行一條匯編指令。

84cc95d0-c389-11ef-9434-92fbcf53809c.png

6,單步跳過調試:如果是在C語言窗口中,則是按單條語句執行,與單步調試不同的是,遇到函數不會進入函數內部,而是直接全速運行函數,并跳到下一條語句。

84de221e-c389-11ef-9434-92fbcf53809c.png

7,單步返回調試:如果是在C語言窗口中,則是直接全速運行當前函數后面所有內容,直到函數返回上一級。

84e5d8ec-c389-11ef-9434-92fbcf53809c.png

8,插入/移除斷點:如果當前光標所在行未有斷點,則插入斷點(前提是當前行可以插入,如果無法插入會顯示一個感嘆號),在有斷點的情況下則是移除斷點。插入斷點后,當前行前面會有個紅圓表示斷點位置。也可以通過直接點擊紅圓位置進行插入/移除斷點的操作。另一種斷點方式,是通過指令來控制,當然也可以使用Keil提供的界面化操作,設置某個變量讀或寫時觸發斷點。不過目前貌似有部分芯片不支持這種操作。注:斷點最多只能打7個。

84f64d94-c389-11ef-9434-92fbcf53809c.png

9,使能/禁止斷點:開啟或禁止當前光標所在行的斷點。禁止后紅圓變成白圓。

8507c196-c389-11ef-9434-92fbcf53809c.png

10,禁止所有斷點:禁止當前所有的斷點。

851553d8-c389-11ef-9434-92fbcf53809c.png

11,刪除所有斷點:刪除所有斷點。

852f62e6-c389-11ef-9434-92fbcf53809c.png

第三節 變量調試方法

通過"View->Watch Windows->Watch1、Watch2"可以選擇打開Watch窗口:

85427304-c389-11ef-9434-92fbcf53809c.png

通過選中一個變量,右鍵添加入對應的Watch窗口,可以追蹤查看當前變量的變化狀態。注意,只有全局變量可以全程監視,臨時變量只有在進入當前函數中才可監視到其數據,用static關鍵詞修飾的變量無法監視。

855f337c-c389-11ef-9434-92fbcf53809c.png

如果當前變量沒有實時更新,則需要點擊"View->Periodic Window Update"將其勾選上。

8576468e-c389-11ef-9434-92fbcf53809c.png

在"Watch"窗口中,可以查看當前變量名稱、值、數據類型,如果當前變量類型為結構體,則可以以對應的結構形式進行展開查看。

858f68c6-c389-11ef-9434-92fbcf53809c.png

第四節 內存調試方法

通過"View->Memory Windows->Memory1/2/3/4"打開Memory窗口:

85a3188a-c389-11ef-9434-92fbcf53809c.png

這個圖標打開的狀態下,再次選中則可關閉:

85b6b7c8-c389-11ef-9434-92fbcf53809c.png

在Memory窗口中輸入想要查看內存的起始地址,另外右上角的鎖可以把當前界面鎖定下來。

85c21e7e-c389-11ef-9434-92fbcf53809c.png


第五節 系統調試方法

通過"View->System Viewer"打開窗口,這個窗口用于查看當前單片機外設及內核寄存器的值,在調試外設底層時經常會使用到。在這個窗口中可以直接修改外設寄存器的值,當然部分只讀寄存器是無法修改的,有些則是需要在特定條件下才可以設置生效,具體就得看對應的芯片手冊里寄存器的說明了。

85cd7b84-c389-11ef-9434-92fbcf53809c.png


第六節 調度調試方法

可以在"View->Call Stack Window"打開此窗口:

85e21a30-c389-11ef-9434-92fbcf53809c.png

這個窗口用于查看當前程序調度關系,當出現有進入硬件錯誤異常調試時可以快速定位到是哪里觸發的異常。這個窗口是的調度關系是從當前程序堆棧里獲取的數據并將其圖形化,所以如果當前堆棧數據被破壞,則此窗口也將無法查看調度關系。該窗口里顯示的調度關系是從下至上調用的,最上面的表示當前程序所處的函數。展開對應的函數,可以查看各層調用函數跳轉之前保存的一些臨時變量等信息

第七節 寄存器調試方法

該窗口可在"View->Registers Window"處打開:

85f6e6f4-c389-11ef-9434-92fbcf53809c.png

這個窗口用于查看當前內核的相關寄存器,如匯編里常說的15個通用寄存器。當然調試中比較常用的是其中的SP、LR、PC三個寄存器。SP為當前棧的地址位置,PC為當前程序地址,LR為函數跳轉前的地址,即當前函數返回的地址。

85ffae42-c389-11ef-9434-92fbcf53809c.png

另外"Banked"中的MSP為當前程序系統主棧,PSP則為操作系統的任務棧,這兩者的區別是,如果使用了操作系統,則當前任務中的所有調度關系使用的是任務棧,而類似中斷這種內核的操作使用的是主棧;如果未使用操作系統,則只會使用主棧,不會使用任務棧。通過"Internal"可以查看當前是處在中斷還是任務中,Mode為"Thread"表示是在線程/任務中,或者是函數中(非中斷),為"Handle"表示是在中斷中;Privilege為"Privelege"表示當前處于特權模式。Stack為"PSP"表示當前使用的是任務棧,為"MSP"則表示使用的是主棧。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • keil
    +關注

    關注

    69

    文章

    1214

    瀏覽量

    167270
  • 調試器
    +關注

    關注

    1

    文章

    306

    瀏覽量

    23830
  • DEBUG
    +關注

    關注

    3

    文章

    94

    瀏覽量

    19976
收藏 人收藏

    評論

    相關推薦

    Arduino串口高級用法,你都掌握了嗎?

    本文為Arduino串口的一些高級用法,希望能幫助創客及相關工程師云梯優化設計。
    發表于 07-16 11:05 ?1.2w次閱讀

    C語言中位運算符的高級用法(1)

    在上一篇文章中,我們介紹了&運算符的基礎用法,本篇文章,我們將介紹& 運算符的一些高級用法。
    發表于 08-22 10:44 ?347次閱讀
    C語言中位運算符的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>(1)

    C語言中位運算符的高級用法(2)

    在上一篇文章中,我們介紹了&運算符的高級用法,本篇文章,我們將介紹| 運算符的一些高級用法
    發表于 08-22 10:45 ?360次閱讀
    C語言中位運算符的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>(2)

    C語言中位運算符的高級用法(3)

    在上一篇文章中,我們介紹了|運算符的高級用法,本篇文章,我們將介紹^ 運算符的一些高級用法。
    發表于 08-22 10:47 ?285次閱讀
    C語言中位運算符的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>(3)

    C語言中位運算符的高級用法(4)

    在上一篇文章中,我們介紹了^運算符的高級用法,本篇文章,我們將介紹~ 運算符的一些高級用法
    發表于 08-22 10:48 ?244次閱讀
    C語言中位運算符的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>(4)

    C語言中位運算符的高級用法(5)

    在上一篇文章中,我們介紹了~運算符的高級用法,本篇文章,我們將介紹
    發表于 08-22 10:49 ?375次閱讀
    C語言中位運算符的<b class='flag-5'>高級</b><b class='flag-5'>用法</b>(5)

    STM32延時函數的高級用法是什么

    STM32延時函數的高級用法是什么
    發表于 12-01 06:32

    ActiveMQ高級用法

    ActiveMQ 高級用法一、嵌入式MQ實際開發中,如果項目沒能給太多資源,而現在業務中又需要用到MQ,可以考慮嵌入式MQ,嵌入式MQ不需要安裝ActiveMQ,只需要導入相關依賴就可以1、pom文件需導入依賴:(在前兩篇關于
    發表于 12-17 07:49

    KEIL斷點調試窗口的常規用法有哪些

    程序運行過程中的數據是怎么修改的?在哪里修改的?KEIL斷點調試窗口的常規用法有哪些?
    發表于 02-17 06:32

    Nuvoton 8051 Keil uVision Driver v1.08安裝后keil debug中顯示Driver為“Nuvoton 8051 KEIL C51 Driver”的原因?

    ?最新的Nuvoton 8051 Keil uVision Driver v1.08安裝后keil debug中顯示Driver為“Nuvoton 8051
    發表于 06-27 08:33

    keil調試延時,除了debug還有別的辦法嗎?

    keil調試延時,除了debug,還有別的辦法嗎,還有0.0000001s等于一微妙嗎?
    發表于 11-03 07:02

    LPC17XX_Keil_高級例程

    LPC17XX_Keil_高級例程源代碼,有需要的下來看看。
    發表于 05-20 15:55 ?23次下載

    #define的高級用法簡介

    #define的高級用法
    的頭像 發表于 02-05 11:50 ?4016次閱讀

    STM32單片機---keil5中debug無法進入main函數

    keil5中debug無法進入main函數問題描述解決方法問題描述使用keil5軟件,進行調試debug時,無法進入main函數中解決方法
    發表于 12-03 20:36 ?18次下載
    STM32單片機---<b class='flag-5'>keil</b>5中<b class='flag-5'>debug</b>無法進入main函數

    STM32單片機無法進入debug,怎么cubmx中打開debug

    初學32單片機發現在keil中程序無法進入debug
    發表于 12-31 19:48 ?7次下載
    STM32單片機無法進入<b class='flag-5'>debug</b>,怎么<b class='flag-5'>在</b>cubmx中打開<b class='flag-5'>debug</b>
    大发888 大发娱乐城| 皇冠现金网骗钱| 延安市| 百家乐官网打水论坛| 澳门百家乐庄闲和| 大发888老虎机手机版下载安装| 百家乐官网玩法及技巧| 澳门百家乐官网路单| 百家乐官网蓝盾假网| 利都百家乐官网国际娱乐| 百家乐网上真钱娱乐网| 宝马会娱乐城返水| 澳门百家乐官网庄闲的玩法| 娱乐城百家乐怎么样| 足球现金网开户| 电玩城百家乐官网技巧| 乐天堂百家乐娱乐平台| 浩博真人娱乐| 百家乐官网23珠路打法| 威尼斯人娱乐城信誉最好| 百家乐官网做中介赚钱| 澳门百家乐投注法| 澳门足球博彩网站| 百家乐官网孖宝揽| 百家乐永利娱乐场开户注册| 鸡西市| 优博百家乐yobo88| 昭苏县| 百家乐是如何骗人的| 菲彩线上娱乐| 网址百家乐官网的玩法技巧和规则 | 蓝盾百家乐具体玩法技巧| 南通市| 百家乐一拖三| 正阳县| 七胜百家乐娱乐城总统网上娱乐城大都会娱乐城赌场 | 江山百家乐的玩法技巧和规则 | 24山方位吉凶| 沈阳棋牌网| 做生意店铺风水好吗| 真龙国际娱乐|