第3章 CH32V307下載與調試


第3章 CH32V307下載與調試

本章主要講解如何通過WCH-Link以及WCHISPTool對CH32V307下載程序,以及如何通過MRS與WCH-Link對CH32V307進行仿真調試。

參考例程見example_code/03_download_debug_demo

3.1 CH32V307下載

CH32V307可以通過MRS和WCH-Link直接下載程序,也通過內置Boot下載程序。

CH32V307通過配置BOOT0和BOOT1引腳電平狀態來選擇不同啟動模式,如下表所示:

BOOT0 BOOT1 啟動模式
0 X 從程序閃存存儲器啟動(Flash)
1 0 從系統存儲器啟動(Boot)
1 1 從內部SRAM啟動

用戶通過設置BOOT0和BOOT1的引腳電平狀態來選擇復位后的啟動模式。系統復位或者電源復位都會導致BOOT0和BOOT1引腳的電平狀態被重新鎖存。

3.1.1 使用WCH-Link下載程序

CH32V307使用WCH-Link下載程序的步驟如下:

步驟1:首先參考第2章WCH-Link介紹,確認WCH-Link處於RISC-V模式(空閑時藍色指示燈不亮)

步驟2:將WCH-Link與PC、CH32V307開發板連接

image

步驟3:打開03_dewnload_debug_demo工程,點擊MRS菜單欄下載按鈕即可下載程序。

image

注意事項及常見問題:

1、新的工程第一次下載時需要配置下載選項,通過點擊Download按鈕右側的倒三角,調出下載配置選項頁面。

image

按照下圖設置配置選項:

image

2、若點擊下載時提示Warning:Please select a project first.

此時MRS未指定任何工程,需要使用鼠標點擊想要下載或調試的工程名稱或其中的任意文件即可。

image

3、若點擊下載時提示Warning:Target file “obj\xxx.hex” doesn't exist. Please check.

此時可能是工程中obj文件夾被刪除,點擊編譯按鈕重新編譯后即可生成obj文件即可;

也可能是工程重新命名后,編譯生成的obj目錄下的目標文件名稱已更改,而下載配置中的Target File目標文件還未更改,重新選擇下載配置中的Target File目標文件即可。

image

4、若點擊下載提示 Read-Protect StatusCurrentlyEnable Unknown error。

此時MCU的Flash開啟了讀保護,在下載配置選項頁面解除讀保護即可。

image

3.1.2 使用WCHISPTool下載程序

CH32V307還可以使用WCHISPTool工具通過芯片的內置Boot下載程序,此時需要將BOOT0引腳接VCC,BOOT1引腳接GND,將MCU的啟動方式切換至從系統存儲器啟動(Boot)啟動,下載完成后運行程序時,還需將啟動模式切換成從程序閃存存儲器啟動(Flash)啟動。

WCHISPTool下載地址:http://www.wch.cn/downloads/WCHISPTool_Setup_exe.html

CH32V307支持USB串口兩種下載方式。USB引腳為PA11(DM)、PA12(DP)或PB6(DM)、PB7(DP);串口引腳為PA9(TX)、PA10(RX)。下載步驟如下:

步驟1:BOOT0接VCC,BOOT1接GND,通過串口或USB連接PC;

步驟2:打開WCHISPTool工具,選擇相應的下載方式,勾選配置選項,選擇下載目標程序,點擊下載;

步驟3:下載完成后,BOOT0接GND,重新上電,運行程序。

WCHISPTool下載界面如下:

image

3.2 CH32V307調試

通過MRS編譯器配合WCH-Link可對CH32V307進行仿真調試,包括斷點調試、單步調試、內核通用寄存器查看、外設寄存器查看、全局變量修改調試等功能。

3.2.1 配置Debug調試參數

新建的CH32V307工程編譯通過后,默認會自動配置好Debug相關參數,不需要手動配置,通過點擊菜單欄Debug按鈕右側的倒三角彈出下拉框,點擊Debug Configurations進入Debug參數配置頁面。

image

Debug參數配置頁面如下圖所示:

image

默認在GDB OpenOCD Debugging欄下會有對應工程名稱的Debug參數配置選項卡,點擊該選項卡即可進入該工程的Debug參數配置頁面。若沒有,雙擊GDB OpenOCD Debugging就會自動新建一個。

通常情況下,Debug的參數會自動配置好。若不小心更改了一些參數導致無法Debug,可以右擊GDB OpenOCD Debugging欄下對應工程的選項卡,點擊delete刪除,然后雙擊GDB OpenOCD Debugging欄新建一個即可。

image

3.2.2 調試啟動與退出

(1)啟動仿真調試

工程編譯無誤后,確保WCH-Link和CH32V307評估板正確連接,點擊MRS菜單欄的Debug按鈕,即可啟動仿真。

image

點擊Debug按鈕后,MRS進入如下圖所示的調試仿真頁面。

image

(2)退出仿真調試

進入仿真調試頁面后,需要退出時,直接點擊快捷菜單欄終止按鈕(terminate)即可。

image

3.2.3 Debug界面常用調試按鈕說明

進入Debug界面后,常用按鈕說明如下:

image

  1. 屏蔽所有斷點按鈕。選中該按鈕后,執行過程中所有斷點處都不會暫停;
  2. 復位重啟按鈕。復位MCU,重新開始執行程序;
  3. 全速運行按鈕。遇到斷點或手動暫停時才會停下;
  4. 暫停按鈕。將程序掛起,暫停運行,只有當程序全速運行時該按鈕才會有效;
  5. 終止按鈕。退出Debug調試
  6. 單步執行按鈕,遇到函數時,會進入函數體繼續單步執行;
  7. 單步執行按鈕,遇到函數時,不會進行函數體,該函數也不當作一行程序單步執行;
  8. 單步返回按鈕,單步執行至函數體時,點擊該按鈕返回。
  9. 指令集單步模式,進入匯編指令調試。

3.2.4 添加調試斷點

所謂斷點,就是進入調試全速運行模式時,運行至該斷點處會自動暫停,需要再次點擊運行才會繼續執行。

目前MRS對斷點的數量沒有限制,但過多的斷點會影響調試的速度。

Debug參數調試配置中Startup欄下默認有一個斷點,在CH32V307啟動文件的handle_reset處,默認進入debug后,從該處開始執行調試。

image

如需手動添加斷點,雙擊代碼行號的左側,生成一個紅色圓點,代表在該行代碼處添加了一個斷點。

image

如需查看程序中的所有斷點設置,可通過信息欄Breakpoints窗口查看。

image

3.2.5 變量的監控與動態修改

進入Debug后,可以實時查看全局變量和局部變量,也可以直接修改變量值。

(1)添加watch,實時監控變量

  1. 選中變量,右擊彈出菜單欄
  2. 點擊選中 Add Watch Expression
  3. 彈出的確認框中點擊ok確認

經過如上步驟,可將變量添加至watch,實時查看變量值。也可在Expressions窗口中手動添加需監控的變量。

image

(3)動態修改變量

CH32V307在Debug過程中,支持動態修改變量值。將變量添加至Watch后,直接在Expressions窗口中,雙擊變量的Value值修改即可。

image

3.2.6 查看內核和外設寄存器

Debug模式下的信息欄中:

  • 點擊選擇Registers窗口可,查看調試過程中的內核通用寄存器的值
  • 點擊選擇Peripherals窗口,可查看CH32V307的外設寄存器的值

image

注意事項:

若點擊Peripherals窗口,查看不到詳細的外設寄存器參數時,需要在Debug 參數配置中的 SVD Path手動添加CH32V307xxx.svd文件。

${eclipse_home}template\wizard\WCH\RISC-V\CH32V307\NoneOS\CH32V307xx.svd

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM