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

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

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

3天內不再提示

在CubeIDE環境下怎么去調試代碼呢?

冬至子 ? 來源:聊點嵌入式 ? 作者:聊點嵌入式 ? 2023-11-06 15:14 ? 次閱讀

搞軟件開發,如果誰能拍胸脯說自己開發的代碼不存在bug,一定會被現實打臉的。系統復雜了,代碼多了,一定會出問題。就算代碼架構設計得多么先進,程序員編程水平多么高,團隊協作多么緊密,代碼審核多么嚴謹,運行出問題的幾率一定存在,是不過是概率大小,出問題早晚,問題的嚴重與否而已。

既然代碼會出問題,那肯定要解決,最有效的辦法就是調試(Debug)了。不管是嵌入式開發,還是應用開發,調試都是程序員必備技能,只不過嵌入式開發的調試又有所不同,除了需要OCDGDB之類的調試軟件之外,還需要J-LinkST-Link等調試器,以及片上JTAG模塊的支持。

我在讀大學的時候學的是51單片機,當時也只有實驗室有實驗箱。所謂的調試基本就是根據運行現象去分析,比如某種亮燈狀態表示某種情況,或者是串口打印信息,屏幕顯示信息等,以此來Debug

后來跟課題組做項目,陸續用到AVRPIC單片機,當時基本沒有第三方的開發板,只能找官方資源,官方的下載器。官方的調試器極其昂貴,想調試的話也只能跟調試51一樣,基本都能解決問題,就是要麻煩一點。

現在的ARM調試器都是白菜價,各個IDE也都具備基本的調試功能,Debug更方便了。Keil下的調試比較直觀,在工程選項里配置好調試參數后,點個按鈕就進入調試模式,這里就不多介紹。今天來講一下CubeIDE下怎么去調試代碼。

1. CubeIDE的編譯選項

Keil不同,基于EclipseCubeIDE下的工程默認有DebugRelease兩個編譯配置,如下圖所示。可以在工程屬性下設置不同的編譯參數,分別作為調試和發行時使用,當然也可以根據需要增加新的編譯配置。Keil下也可以實現類似的功能,不過需要我們自己去配置,這個有很多文檔可以參考。

圖片

保留不同編譯配置的功能在寫代碼時非常有用,結合條件編譯,可以提高調試效率,或者是適應不同的硬件平臺,不需要再搞一個新的工程。例如在Debug編譯配置下,默認會定義一個DEBUG的符號,在Release編譯配置下,則沒有定義這個符號。見下圖。

圖片

我們在編寫代碼的時候,就可以根據編譯配置的不同,結合條件編譯,選擇編譯不同的代碼。例如,在正常工作的時候,某個傳感器上電后需要經過10分鐘才能正常工作,而在調試的時候,完全沒必要去等這10分鐘。我們可以用下面的偽代碼實現這個功能。

#ifndef DEBUG
 delay_second(10*60);    //延時10分鐘
 #endif
  1. 調試配置

使用Debug編譯選項編譯完成后,會在工程目錄->Debug下生成elf可執行文件,elf文件包含調試信息,這是我們調試的必要文件。Eclipse調試前需要配置調試參數,配置方式見下圖。

圖片

需要進行調試的話,點擊工具欄小蟲子圖標就進入調試模式。

在調試模式下可以設置斷點,或單步運行,也可以查看寄存器的值,變量值等。另外CubeIDE還提供了很多有用的功能,比如說可以調出“故障分析器”,代碼出現異常時可以自動分析錯誤類型,不需要我們費力的去查看相關寄存器的值來確定錯誤類型;還可以顯示反匯編后的匯編代碼,與C代碼同步顯示。需要注意的是,調試模式下,編譯代碼應選擇不優化,這樣設置的斷點才都會有效。

調試時所需要查看的信息都可以在下圖的菜單里調出來。

圖片

3. 小結

進入調試模式后,就可以根據實際情況設置斷點,查看寄存器或變量值,也可以根據需要單步運行。大家可以在實踐中熟悉調試方法與技巧。

另外,在調試模式下,無論是打斷點還是單步運行,都沒有辦法實時跟蹤寄存器或變量值,看到的只是斷點處的值,如果想看到實時變化的寄存器或變量值,甚至是某個函數被調用的次數,或者運行占用的CPU時間等,可以通過ARM提供的SWV(Serial Wire Viewer)實時跟蹤技術來實現,下次我們再來講講這個SWV

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

    關注

    2551

    文章

    51163

    瀏覽量

    754148
  • 寄存器
    +關注

    關注

    31

    文章

    5355

    瀏覽量

    120513
  • STM32
    +關注

    關注

    2270

    文章

    10904

    瀏覽量

    356340
  • 調試器
    +關注

    關注

    1

    文章

    305

    瀏覽量

    23758
  • ARM單片機
    +關注

    關注

    0

    文章

    45

    瀏覽量

    9842
收藏 人收藏

    評論

    相關推薦

    請問STM32CubeIDE能否生成MDK代碼

    雖然我知道CubeIDE是集成開發環境代碼生成、編輯、編譯下載調試都OK,但是想問一,能否像STM32CubeMX那樣,生成
    發表于 03-13 08:02

    Ubuntu環境如何使用stlink調試stm32f4-discovery程序

    Ubuntu環境如何使用stlink調試stm32f4-discovery程序Ubun
    發表于 11-02 07:20

    如何編寫STM32CubeMX生成的Keil工程代碼

    如何編寫STM32CubeMX生成的Keil工程代碼?如何實現STM32CubeIDE創建的工程
    發表于 12-02 07:59

    STM32CUBEIDE環境printf()和scanf()為什么會運行失敗

    STM32CUBEIDE環境printf()和scanf()為什么會運行失敗?其解決方案是什么?
    發表于 12-02 07:01

    如何對STM32CUBEIDE的ADC DMA進行配置

    STM32的ADC DMA該怎樣使用?如何對STM32CUBEIDE的ADC DMA進行配置
    發表于 01-25 06:16

    怎樣使用STM32CubeIDE軟件

    如何對STM32CubeIDE進行配置?怎樣使用STM32CubeIDE軟件
    發表于 02-28 08:48

    怎樣控制基于STM32CubeIDE的智能小車

    基于STM32CubeIDE的智能小車包括哪些功能?怎樣控制基于STM32CubeIDE的智能小車
    發表于 03-01 07:39

    請問一怎樣使用cubeide生成一些代碼

    請問一怎樣使用cubeide生成一些代碼
    發表于 12-08 09:07

    使用STM32CubeIDE生成代碼調試出錯我該如何解決

    我正在使用 STM32CubeIDE 生成代碼,但是當我開始調試時,出現如下錯誤:《STMicroelectronics ST-LINK GDB 服務器。版本 5.2.3版權所有 (c) 2019
    發表于 12-19 08:52

    STM32CubeIDE如何在不調試的情況運行?

    試用新的 STM32CubeIDE。大多數情況,我喜歡它。有一些粗糙的邊緣和對話不能正常運行(至少 Mac 上),但我不能做的是向工具欄添加“運行”配置。我只想構建代碼并刷新它,而
    發表于 01-31 07:20

    STM32CubeIDE上構建TouchGFX生成的代碼,報調試器錯誤怎么處理?

    STM32F746NGHx_FLASH.ld(來自特定板的 Repository Demo),將文件大小減小到 35KB。但是代碼沒有目標上工作,調試模式提到的 2) 或 STM
    發表于 02-07 07:11

    STM32CubeIDE所支持的幾個調試小工具及功能

    意法半導體ST公司為廣大STM32用戶免費提供了基于GCC的功能強大集成調試工具STM32CubeIDE。這里簡單演示STM32CubeIDE所支持的幾個
    的頭像 發表于 07-11 09:59 ?3311次閱讀

    集成開發環境STM32CubeIDE查看匯編代碼的相關配置操作

    有人使用ST免費提供的集成開發環境STM32CubeIDE,想知道如何查看匯編代碼,這里簡單介紹下相關配置操作。
    發表于 09-01 09:55 ?3599次閱讀

    基于STM32CubeIDE調試配置

    當我把這個地方取消勾選后,使用前面相同代碼做驗證調試,此時不再觸發異常并返回0值結果。到此,也就解釋了發生除以0操作時,為什么STM32CubeIDE會出現與MDK、IAR不同的調試
    的頭像 發表于 10-08 10:01 ?4036次閱讀

    STM32Cube CubeIDE添加代碼點亮LED

    前一篇已經生成了CubeIDE的工程代碼,接下來就要用CubeIDE打開,添加點亮LED燈的代碼了。
    的頭像 發表于 11-06 14:40 ?1462次閱讀
    STM32Cube <b class='flag-5'>CubeIDE</b>添加<b class='flag-5'>代碼</b>點亮LED
    主站蜘蛛池模板: 日韩在线 无码 精品| 4399日本电影完整版在线观看免费| 99re久久热在线视频| 内射人妻无码色AV麻豆去百度搜| 爱情岛aqdlttv| 无码中文字幕热热久久| 久久国产高清视频| 99视频网址| 午夜婷婷一夜七次郎| 久久久久久久网站| 成人午夜精品久久久久久久秋霞 | 国产乱人伦AV麻豆网| 在线 亚洲 日韩 欧洲视频| 欧美特级特黄AAAAA片| 国产视频a在线观看v| 69精品国产人妻蜜桃国产毛片| 失禁h啪肉尿出来高h| 旧里番ovaの催○セイ活指导| 丰满的女朋友韩国版在线观看| 野花香HD免费高清版6高清版| 破苞流血哭泣 magnet| 国内视频在线精品一区| 久久精品AV一区二区无码| 99视频免费观看| 亚洲国产高清视频在线观看| 女人会操出水图| 狠狠狠的在啪线香蕉| 苍老师刺激的120分钟| 杨幂被视频在线观看| 日日a.v拍夜夜添久久免费| 久久人妻AV一区二区软件| 国产福利视频一区二区| 99国产精品综合AV无码| 亚洲精品久久久午夜福利电影网 | 365电影成人亚洲网在线观看| 午夜aaaa| 日本无码免费久久久精品| 伦理片 a在线线版韩国| 国产又粗又黄又爽的大片| 大肚婆孕妇网| 99视频在线精品免费观看18|