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)試模式會停在如圖所示的位置,此位置有一個臨時斷點: 【更改默認斷點位置】當然如果希望工程可以直接停在main函數(shù)起始地方,也可以去手動更改此斷點的位置,點擊調(diào)試圖標旁的下拉按鈕,選擇”Debug Configurations”,在彈出的頁面中選擇Startup選項卡,將set breakpoint at 設(shè)置為 main即可。 配置完成后點擊右下角 Debug,或者保存之后退出配置,點擊菜單欄 ,進入調(diào)試模式后就會停在剛才設(shè)置的位置 【查看機器碼】進入調(diào)試之后,可以看到左下角Disassembly窗口,此窗口可以顯示PC附近代碼的匯編以及地址,也可以在左側(cè)空白處鼠標右鍵,選擇show opcodes,來顯示機器碼。 【機器碼斷點與跳轉(zhuǎn)】雙擊反匯編窗口左側(cè)空白處也可以設(shè)置斷點,紅框位置處可以填寫16進制的地址,用來跳轉(zhuǎn)到想要查看位置的匯編代碼。主窗口用來顯示代碼運行位置,可以在左側(cè)窗體位置處雙擊來增加或取消斷點。 【軟件斷點】因為采用的是軟件斷點,理論上不限制斷點個數(shù),但是過多的斷點會引起程序仿真變慢。 【變量查看】右側(cè)Variables窗口會顯示當前函數(shù)中變量的值。也可以在此窗口修改你想要改變的變量的值,但注意只是修改到Ram,重新上電后該值恢復(fù)為實際大小。 【添加監(jiān)測變量】Experssions可以自定義添加監(jiān)測的變量,也同樣可以修改,效果和Variables窗口中的一致。 【錯誤中斷】下方Registers窗口顯示的是RISCV內(nèi)核的CSR+GPR寄存器,可以用來觀測內(nèi)核狀態(tài),有幾個寄存器在出現(xiàn)HARDFAULT 錯誤時可以幫助定位問題,在進入硬件錯誤中斷處理函數(shù)時,mepc顯示的是出錯時的地址,mcause 顯示的是原因,mtval 顯示的是出錯時cpu取到的值,mcause值含義如下圖。 【斷點窗口】Breakpoints窗口可以顯示所有設(shè)置的斷點位置,可以在此處使能或者刪除段斷點。
【內(nèi)存窗口】Memory窗口可以用來查詢不同地址的值,例如我們查詢0x2000000,點擊該窗口下綠色加號 ,在彈出的窗口輸入要查詢的地址。此處也可更改不同地址內(nèi)的數(shù)據(jù),要注意的是根據(jù)芯片手冊看此地址是否可以讀寫。 【外設(shè)寄存器窗口】Peripherals窗口可以選擇要觀察的外設(shè)寄存器,一同展示的內(nèi)容除外設(shè)寄存器名稱外,還有地址以及描述信息。
|