色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

keil在Debug的高級用法

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

第一節(jié) 軟件說明

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

第二節(jié) 基本調(diào)試方法

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

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

如果前面工程配置里選擇了復(fù)位調(diào)試,則進入調(diào)試后,會停在main函數(shù)頭部:

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

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

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

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

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

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

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

5,單步調(diào)試:根據(jù)當(dāng)前調(diào)試的窗口的語言,執(zhí)行單條語句。如果遇到函數(shù),則會進入函數(shù)內(nèi)部。如果是在反匯編窗口中,則只執(zhí)行一條匯編指令。

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

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

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

7,單步返回調(diào)試:如果是在C語言窗口中,則是直接全速運行當(dāng)前函數(shù)后面所有內(nèi)容,直到函數(shù)返回上一級。

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

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

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

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

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

10,禁止所有斷點:禁止當(dāng)前所有的斷點。

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

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

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

第三節(jié) 變量調(diào)試方法

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

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

通過選中一個變量,右鍵添加入對應(yīng)的Watch窗口,可以追蹤查看當(dāng)前變量的變化狀態(tài)。注意,只有全局變量可以全程監(jiān)視,臨時變量只有在進入當(dāng)前函數(shù)中才可監(jiān)視到其數(shù)據(jù),用static關(guān)鍵詞修飾的變量無法監(jiān)視。

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

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

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

在"Watch"窗口中,可以查看當(dāng)前變量名稱、值、數(shù)據(jù)類型,如果當(dāng)前變量類型為結(jié)構(gòu)體,則可以以對應(yīng)的結(jié)構(gòu)形式進行展開查看。

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

第四節(jié) 內(nèi)存調(diào)試方法

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

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

這個圖標(biāo)打開的狀態(tài)下,再次選中則可關(guān)閉:

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

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

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


第五節(jié) 系統(tǒng)調(diào)試方法

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

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


第六節(jié) 調(diào)度調(diào)試方法

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

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

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

第七節(jié) 寄存器調(diào)試方法

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

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

這個窗口用于查看當(dāng)前內(nèi)核的相關(guān)寄存器,如匯編里常說的15個通用寄存器。當(dāng)然調(diào)試中比較常用的是其中的SP、LR、PC三個寄存器。SP為當(dāng)前棧的地址位置,PC為當(dāng)前程序地址,LR為函數(shù)跳轉(zhuǎn)前的地址,即當(dāng)前函數(shù)返回的地址。

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

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

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

    關(guān)注

    68

    文章

    1213

    瀏覽量

    166875
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    305

    瀏覽量

    23739
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    94

    瀏覽量

    19920
收藏 人收藏

    評論

    相關(guān)推薦

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

    本文為Arduino串口的一些高級用法,希望能幫助創(chuàng)客及相關(guān)工程師云梯優(yōu)化設(shè)計。
    發(fā)表于 07-16 11:05 ?1.2w次閱讀

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

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

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

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

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

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

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

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

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

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

    STM32延時函數(shù)的高級用法是什么

    STM32延時函數(shù)的高級用法是什么
    發(fā)表于 12-01 06:32

    ActiveMQ高級用法

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

    KEIL斷點調(diào)試窗口的常規(guī)用法有哪些

    程序運行過程中的數(shù)據(jù)是怎么修改的?在哪里修改的?KEIL斷點調(diào)試窗口的常規(guī)用法有哪些?
    發(fā)表于 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
    發(fā)表于 06-27 08:33

    keil調(diào)試延時,除了debug還有別的辦法嗎?

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

    LPC17XX_Keil_高級例程

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

    #define的高級用法簡介

    #define的高級用法
    的頭像 發(fā)表于 02-05 11:50 ?3931次閱讀

    STM32單片機---keil5中debug無法進入main函數(shù)

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

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

    初學(xué)32單片機發(fā)現(xiàn)在keil中程序無法進入debug
    發(fā)表于 12-31 19:48 ?7次下載
    STM32單片機無法進入<b class='flag-5'>debug</b>,怎么<b class='flag-5'>在</b>cubmx中打開<b class='flag-5'>debug</b>
    主站蜘蛛池模板: 国产精品亚洲二线在线播放| 抽插H浊水H嫩B父皇| 97久久伊人精品影院| 99视频网址| 国产成人无码精品久久久影院| 国产精品热久久高潮AV袁孑怡| 狠狠啪在线香蕉| 男男高h浪荡受h| 四虎精品久久| 一区二区三区高清视频| 99精品电影一区二区免费看| 高h辣h双处全是肉一对一| 国内精品久久久久影院男同志| 久久久免费观看| 欧美在线视频一区| 亚洲.日韩.欧美另类| 在线国产三级| 观赏女性排尿| 久久国产精品自线拍免费| 欧美亚洲日本日韩在线| 午夜伦理 第1页| 24小时日本在线观看片| 扒开老师粉嫩的泬10P| 国精品产露脸偷拍视频| 免费国产麻豆传| 小货SAO边洗澡边CAO你动漫| 3D动漫网站HOXXXxes| 囯产免费精品一品二区三区视频| 精品国产麻豆AV无码| 人妖欧美一区二区三区四区| 亚洲精品成人a| www.伊人网| 九色PORNY真实丨国产大胸| 日本xxxxxxx| 伊人综合在线22| 囯产免费久久久久久国产免费| 狂躁美女BBBBBB视频| 无码任你躁久久久久久老妇双奶| 69人体阴展网| 国产在线观看www| 日韩成人性视频|