? ? ? ES32 圖形化調(diào)試軟件 ES-DAP-Viewer
?
? ?MCU 向調(diào)試終端輸出信息的方法有很多。今天就介紹一個(gè)更炫更酷、可以圖形化顯示數(shù)據(jù)的調(diào)試法寶——ES-DAP-Viewer。ES-DAP-Viewer 是 essemi 推出的,可以在目標(biāo) MCU 運(yùn)行時(shí),實(shí)時(shí)分析數(shù)據(jù)并圖形化顯示的 PC 端軟件。用戶可以簡(jiǎn)單的將目標(biāo) ES32 芯片連接到 ES-Link II 調(diào)試器或 ES-DAPLink 調(diào)試器,并啟動(dòng) ES-DAP-Viewer 軟件,就可以像示波器一樣顯示多個(gè)變量的值。它支持通過(guò)如下三種模式獲取數(shù)據(jù):
- UART-Print 模式:用戶通過(guò)串口將數(shù)據(jù)以固定的格式發(fā)送到 PC 端,上位機(jī)軟件按照用戶界面屬性配置將收到的數(shù)據(jù)繪成波形。
- SWD-Print 模式:這種模式不要額外的 UART 引腳, PC 軟件通過(guò) SWD 調(diào)試接口獲取數(shù)據(jù),用戶只需要使用 essemi_swd_printf 函數(shù)將數(shù)據(jù)寫(xiě)入目標(biāo)緩沖區(qū)即可。
- 全局變量監(jiān)視模式:這種模式也是通過(guò) SWD 調(diào)試接口獲取數(shù)據(jù),并通過(guò)讀取一個(gè) axf 文件,允許選擇一定數(shù)量的變量可視化。
ES-DAP-Viewer下載鏈接(復(fù)制到瀏覽器打開(kāi)):http://www.essemi.com/index/product/detail?id=896
1. UART-Print 模式
左邊為繪圖窗口;右邊為配置窗口,包括串口選擇及參數(shù)設(shè)置窗口,數(shù)據(jù)處理窗口和幀格式設(shè)置窗口;底部為通道選擇欄,最多支持10個(gè)通道。
PC 界面操作說(shuō)明
? ? ? ?UART-Print 繪圖調(diào)試的大致流程如下所述:
- 打開(kāi) ES-DAP-Viewer 后選擇 UART-Print 選項(xiàng)卡,進(jìn)入 UART-Print 界面。
- 在串口選擇及參數(shù)設(shè)置窗口中選擇通信串口,并配置通信參數(shù)。根據(jù) UART 通信協(xié)議,用戶需配置波特率,停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。
- 在幀格式設(shè)置窗口中設(shè)置數(shù)據(jù)類型,可選 Uint8、Int8、Uint16、Int16 以及 Uint32 和 Int32。
- 點(diǎn)擊 打開(kāi)串口 開(kāi)始數(shù)據(jù)傳輸,點(diǎn)擊 開(kāi)始顯示 便可在繪圖窗口看到當(dāng)前調(diào)試數(shù)據(jù)的實(shí)時(shí)波形。
- 點(diǎn)擊 保存 可保存接收到的數(shù)據(jù)。點(diǎn)擊 清除緩存 可清空當(dāng)前顯示界面內(nèi)的圖形。點(diǎn)擊 初始比例 可當(dāng)前視圖回到初始狀態(tài)時(shí)的顯示比例。點(diǎn)擊 背景顏色 右側(cè)的顏色框可選擇當(dāng)前視圖的背景色。
- 點(diǎn)擊 顯示方式 下拉菜單,可選擇 波形顯示 和 數(shù)據(jù)顯示 。需要注意的是,當(dāng)選擇 數(shù)據(jù)顯示 時(shí),在數(shù)據(jù)顯示窗口中顯示的是用戶程序發(fā)送的原始數(shù)據(jù)(不包含幀頭、功能碼、數(shù)據(jù)長(zhǎng)度及校驗(yàn)和),每行顯示一幀數(shù)據(jù)。
- 點(diǎn)擊 開(kāi)始顯示,波形或數(shù)據(jù)開(kāi)始動(dòng)態(tài)顯示。
- 輸入框 顯示時(shí)長(zhǎng) 默認(rèn)為 50000ms,可根據(jù)實(shí)際情況,輸入合適的值,在按下回車鍵后將會(huì)更新橫坐標(biāo)的顯示范圍。
通信協(xié)議和程序示例
UART-Print 使用的通信協(xié)議如下表所示:
關(guān)于 ES-DAP-Viewer 的 UART-Print 通信協(xié)議,詳細(xì)說(shuō)明如下:
- UART-Print 的數(shù)據(jù)幀由幀頭、功能碼、數(shù)據(jù)長(zhǎng)度、用戶數(shù)據(jù)以及累加校驗(yàn)和組成,其中,幀頭固定為兩字節(jié)大小的 0xAAAA,功能碼固定為 0xF1。
- data_len 表示該數(shù)據(jù)幀內(nèi)包含的用戶數(shù)據(jù)的字節(jié)總長(zhǎng)度,不包括幀頭、功能碼、數(shù)據(jù)長(zhǎng)度和累加校驗(yàn)和。
- check_sum 表示從該數(shù)據(jù)幀第一個(gè)字節(jié)開(kāi)始,也就是幀頭開(kāi)始,到用戶數(shù)據(jù)最后一個(gè)字節(jié)的累加校驗(yàn)和,高位舍去,只保留低八位。
- ES-DAP-Viewer上位機(jī)按照上述的協(xié)議解析收到的數(shù)據(jù)并進(jìn)行校驗(yàn)以顯示可靠的數(shù)據(jù),這意味著用戶在使用 UART-Print 功能時(shí),必須按照該協(xié)議進(jìn)行發(fā)送數(shù)據(jù),否則上位機(jī)會(huì)因校驗(yàn)不通過(guò)而丟棄數(shù)據(jù)。
- UART-Print 最多支持 10 個(gè)通道,每個(gè)通道均支持顯示 Uint8、Int8、Uint16、Int16 以及 Uint32 和 Int32 格式的數(shù)據(jù)。
如下程序可產(chǎn)生上面動(dòng)圖所示的效果。
2. SWD-Print模式
關(guān)于 SWD-Print 的界面使用介紹可參考 UART-Print。
使用說(shuō)明
? ? ? ?用戶程序需要使用 essemi_swd_printf 函數(shù)將數(shù)據(jù)寫(xiě)入目標(biāo)緩沖區(qū),ES-DAP-Viewer 將通過(guò) SWD 調(diào)試接口讀取數(shù)據(jù)后顯示在 PC 界面上。SWD-Print 功能的實(shí)現(xiàn)需要用到以下四個(gè)配置文件:
essemi_swd_print.h
essemi_swd_print_conf.h
essemi_swd_print.c
essemi_swd_print_printf.c
用戶在工程中成功添加上述四個(gè)配置文件后,并在需要用到 SWD-Print 功能的文件中包含如下頭文件#include“essemi_swd_print.h”后,即可調(diào)用 essemi_swd_printf()函數(shù)將需要打印的數(shù)據(jù)放到 SWD 專屬內(nèi)存區(qū)域中,然后上位機(jī)到該內(nèi)存區(qū)域取出數(shù)據(jù),顯示到繪圖窗口。
配置文件放在 ES-DAP-Viewer 如下安裝目錄:。..\configure\essemi_swd_print。
需要注意以下幾點(diǎn):
在使用 SWD-Print 功能的函數(shù)時(shí),必須先調(diào)用函數(shù) int essemi_swd_configupbuffer 以及函數(shù) int essemi_swd_configdownbuffer 來(lái)初始化上行(MCU 端到 PC 端)和下行(PC 端到 MCU 端)緩沖區(qū),其中,對(duì)于第一個(gè)參數(shù) BufferIndex = 0 的時(shí)候,SWD 組件已為其配置了緩沖和默認(rèn)大小,其大小配置是在 essemi_swd_print_conf.h 中通過(guò)宏定義進(jìn)行的 #define BUFFER_SIZE_UP(1024) 及 #define BUFFER_SIZE_DOWN(16),因此,在使用緩沖區(qū) 0 時(shí),配置比較簡(jiǎn)單,按照該格式即可:
SWD-Print 目前僅支持字節(jié)、半字、字輸出,因此當(dāng)使用函數(shù) int essemi_swd_printf(unsigned BufferIndex, const char *sFormat, 。..) 時(shí),須根據(jù)輸出的數(shù)據(jù)位寬使用 “%.2x” 、“%.4x” 或 “%.8x” 來(lái)格式化輸出。并且,輸出的第一個(gè)字符必須為空格。
在連接 DAP 調(diào)試器時(shí),必須確保目標(biāo) MCU 程序正確下載并復(fù)位,否則將無(wú)法連接 DAP 調(diào)試器。
程序示例
如下程序可產(chǎn)生上面動(dòng)圖所示的效果。
3. 全局變量監(jiān)視模式
使用說(shuō)明
? ? ? ?用戶首先需點(diǎn)擊 選擇axf文件 按鈕,載入由編譯器生成的 axf 文件,然后在頁(yè)面下方選擇需要監(jiān)視的全局變量。
通過(guò)點(diǎn)擊下拉框 DAP設(shè)備 選擇上位機(jī)已掃描到的 DAP 設(shè)備,當(dāng)上位機(jī)掃描到目標(biāo) CMSIS-DAP 設(shè)備時(shí),點(diǎn)擊 打開(kāi)連接 即可與該設(shè)備建立通信。
左邊為繪圖窗口;右邊為配置窗口,包括 axf 文件和 DAP 設(shè)備選擇窗口,數(shù)據(jù)顯示配置窗口;下方為解析到的全局變量列表。
全局變量監(jiān)視繪圖調(diào)試的流程如下所述:
- 打開(kāi) ES-DAP-Viewer 后選擇全局變量監(jiān)視選項(xiàng)卡,進(jìn)入全局變量監(jiān)視界面。
- 點(diǎn)擊 選擇axf文件 按鈕,載入由編譯器生成的 axf 文件。
- 點(diǎn)擊下拉框 DAP設(shè)備 選擇上位機(jī)已掃描到的 DAP 設(shè)備,當(dāng)上位機(jī)掃描到目標(biāo) DAP 設(shè)備時(shí),點(diǎn)擊 打開(kāi)連接 與該設(shè)備建立連接。
- 在下方全局變量列表中,可查看解析到的全局變量的名稱,地址以及數(shù)據(jù)類型大小,通過(guò)點(diǎn)擊全局變量所在行中,對(duì)應(yīng)的 Color 單元,可選擇該全局變量在波形顯示窗口中的顏色。此外,盡管目前可以解析到結(jié)構(gòu)體變量,但目前不支持對(duì)結(jié)構(gòu)體成員和數(shù)組成員進(jìn)行解析,因此在全局變量列表中勾選結(jié)構(gòu)體類型的全局變量是無(wú)效的,勾選數(shù)組成員會(huì)因數(shù)組類型的不同而產(chǎn)生不同的效果。
- 點(diǎn)擊 開(kāi)始顯示 按鈕便可在繪圖窗口看到當(dāng)前調(diào)試數(shù)據(jù)的實(shí)時(shí)變化波形,在下方全局變量列表的 Value(0x) 列中可查看全局變量的當(dāng)前值。
- 此外,用戶還可在數(shù)據(jù)處理窗口中選擇保存數(shù)據(jù),顯示光標(biāo),清除緩存,以及更改背景顏色。
- 其余操作可參考 UART-Print 界面操作說(shuō)明。
程序示例
如下程序可產(chǎn)生上面動(dòng)圖所示的效果。
評(píng)論