找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2053|回復(fù): 0
收起左側(cè)

RISC-V MCU開發(fā) (七):代碼調(diào)試

[復(fù)制鏈接]
ID:809235 發(fā)表于 2021-10-9 15:33 | 顯示全部樓層 |閱讀模式
MounRiver®Studio(MRS)配合GD-Link、WCH-Link、JLink等在線調(diào)試下載器,可支持GDVFx系列、CH56x、CH57x、CH58x、CH32Fx、CH32Vx等RISC-V/ARM內(nèi)核MCU工程的代碼調(diào)試功能。本文主要介紹MRS針對RISC-V內(nèi)核MCU的代碼調(diào)試操作。
【啟動調(diào)試】以CH32V103C8T6的芯片工程為例來說,首先保證工程可以編譯通過,然后點擊菜單欄按鈕,開始進入調(diào)試模式,正常進入調(diào)試模式會停在如圖所示的位置,此位置有一個臨時斷點:
1.png
【更改默認斷點位置】當然如果希望工程可以直接停在main函數(shù)起始地方,也可以去手動更改此斷點的位置,點擊調(diào)試圖標旁的下拉按鈕,選擇”Debug Configurations”,在彈出的頁面中選擇Startup選項卡,將set breakpoint at 設(shè)置為 main即可。
2.png
配置完成后點擊右下角 Debug,或者保存之后退出配置,點擊菜單欄 ,進入調(diào)試模式后就會停在剛才設(shè)置的位置
3.png
【查看機器碼】進入調(diào)試之后,可以看到左下角Disassembly窗口,此窗口可以顯示PC附近代碼的匯編以及地址,也可以在左側(cè)空白處鼠標右鍵,選擇show opcodes,來顯示機器碼。
4.png
【機器碼斷點與跳轉(zhuǎn)】雙擊反匯編窗口左側(cè)空白處也可以設(shè)置斷點,紅框位置處可以填寫16進制的地址,用來跳轉(zhuǎn)到想要查看位置的匯編代碼。主窗口用來顯示代碼運行位置,可以在左側(cè)窗體位置處雙擊來增加或取消斷點。
5.png
【軟件斷點】因為采用的是軟件斷點,理論上不限制斷點個數(shù),但是過多的斷點會引起程序仿真變慢。
6.png
【變量查看】右側(cè)Variables窗口會顯示當前函數(shù)中變量的值。也可以在此窗口修改你想要改變的變量的值,但注意只是修改到Ram,重新上電后該值恢復(fù)為實際大小。
7.png
【添加監(jiān)測變量】Experssions可以自定義添加監(jiān)測的變量,也同樣可以修改,效果和Variables窗口中的一致。
8.png
【錯誤中斷】下方Registers窗口顯示的是RISCV內(nèi)核的CSR+GPR寄存器,可以用來觀測內(nèi)核狀態(tài),有幾個寄存器在出現(xiàn)HARDFAULT 錯誤時可以幫助定位問題,在進入硬件錯誤中斷處理函數(shù)時,mepc顯示的是出錯時的地址,mcause 顯示的是原因,mtval 顯示的是出錯時cpu取到的值,mcause值含義如下圖。
9.png
【斷點窗口】Breakpoints窗口可以顯示所有設(shè)置的斷點位置,可以在此處使能或者刪除段斷點。
10.png

【內(nèi)存窗口】Memory窗口可以用來查詢不同地址的值,例如我們查詢0x2000000,點擊該窗口下綠色加號 ,在彈出的窗口輸入要查詢的地址。此處也可更改不同地址內(nèi)的數(shù)據(jù),要注意的是根據(jù)芯片手冊看此地址是否可以讀寫。
11.png
【外設(shè)寄存器窗口】Peripherals窗口可以選擇要觀察的外設(shè)寄存器,一同展示的內(nèi)容除外設(shè)寄存器名稱外,還有地址以及描述信息。
12.png

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表