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