電子發燒友網>測量儀表> > 正文

工程師筆記|ES32 圖形化調試軟件——ES-DAP-Viewer

2021年10月28日 09:20 ? 次閱讀

  

? ? ? ES32 圖形化調試軟件 ES-DAP-Viewer

?

 ? ?MCU 向調試終端輸出信息的方法有很多。今天就介紹一個更炫更酷、可以圖形化顯示數據的調試法寶——ES-DAP-Viewer。ES-DAP-Viewer 是 essemi 推出的,可以在目標 MCU 運行時,實時分析數據并圖形化顯示的 PC 端軟件。用戶可以簡單的將目標 ES32 芯片連接到 ES-Link II 調試器或 ES-DAPLink 調試器,并啟動 ES-DAP-Viewer 軟件,就可以像示波器一樣顯示多個變量的值。它支持通過如下三種模式獲取數據:

  1.   UART-Print 模式:用戶通過串口將數據以固定的格式發送到 PC 端,上位機軟件按照用戶界面屬性配置將收到的數據繪成波形。
  2.   SWD-Print 模式:這種模式不要額外的 UART 引腳, PC 軟件通過 SWD 調試接口獲取數據,用戶只需要使用 essemi_swd_printf 函數將數據寫入目標緩沖區即可。
  3.   全局變量監視模式:這種模式也是通過 SWD 調試接口獲取數據,并通過讀取一個 axf 文件,允許選擇一定數量的變量可視化。

  ES-DAP-Viewer下載鏈接(復制到瀏覽器打開):http://www.essemi.com/index/product/detail?id=896

  1. UART-Print 模式

  左邊為繪圖窗口;右邊為配置窗口,包括串口選擇及參數設置窗口,數據處理窗口和幀格式設置窗口;底部為通道選擇欄,最多支持10個通道。

  PC 界面操作說明

? ? ? ?UART-Print 繪圖調試的大致流程如下所述:

  1.   打開 ES-DAP-Viewer 后選擇 UART-Print 選項卡,進入 UART-Print 界面。
  2.   在串口選擇及參數設置窗口中選擇通信串口,并配置通信參數。根據 UART 通信協議,用戶需配置波特率,停止位,數據位和奇偶校驗位。
  3.   在幀格式設置窗口中設置數據類型,可選 Uint8、Int8、Uint16、Int16 以及 Uint32 Int32。
  4.   點擊 打開串口 開始數據傳輸,點擊 開始顯示 便可在繪圖窗口看到當前調試數據的實時波形。
  5.   點擊 保存 可保存接收到的數據。點擊 清除緩存 可清空當前顯示界面內的圖形。點擊 初始比例 可當前視圖回到初始狀態時的顯示比例。點擊 背景顏色 右側的顏色框可選擇當前視圖的背景色。
  6.   點擊 顯示方式 下拉菜單,可選擇 波形顯示 數據顯示 。需要注意的是,當選擇 數據顯示 時,在數據顯示窗口中顯示的是用戶程序發送的原始數據(不包含幀頭、功能碼、數據長度及校驗和),每行顯示一幀數據。
  7.   點擊 開始顯示,波形或數據開始動態顯示。
  8.   輸入框 顯示時長 默認為 50000ms,可根據實際情況,輸入合適的值,在按下回車鍵后將會更新橫坐標的顯示范圍。

  通信協議和程序示例

  UART-Print 使用的通信協議如下表所示:

  關于 ES-DAP-Viewer 的 UART-Print 通信協議,詳細說明如下:

  1.   UART-Print 的數據幀由幀頭、功能碼、數據長度、用戶數據以及累加校驗和組成,其中,幀頭固定為兩字節大小的 0xAAAA,功能碼固定為 0xF1。
  2.   data_len 表示該數據幀內包含的用戶數據的字節總長度,不包括幀頭、功能碼、數據長度和累加校驗和。
  3.   check_sum 表示從該數據幀第一個字節開始,也就是幀頭開始,到用戶數據最后一個字節的累加校驗和,高位舍去,只保留低八位。
  4.   ES-DAP-Viewer上位機按照上述的協議解析收到的數據并進行校驗以顯示可靠的數據,這意味著用戶在使用 UART-Print 功能時,必須按照該協議進行發送數據,否則上位機會因校驗不通過而丟棄數據。
  5.   UART-Print 最多支持 10 個通道,每個通道均支持顯示 Uint8、Int8、Uint16、Int16 以及 Uint32 Int32 格式的數據。

  如下程序可產生上面動圖所示的效果。


  2. SWD-Print模式

  關于 SWD-Print 的界面使用介紹可參考 UART-Print。

  使用說明

? ? ? ?用戶程序需要使用 essemi_swd_printf 函數將數據寫入目標緩沖區,ES-DAP-Viewer 將通過 SWD 調試接口讀取數據后顯示在 PC 界面上。SWD-Print 功能的實現需要用到以下四個配置文件:

  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”后,即可調用 essemi_swd_printf()函數將需要打印的數據放到 SWD 專屬內存區域中,然后上位機到該內存區域取出數據,顯示到繪圖窗口。

  配置文件放在 ES-DAP-Viewer 如下安裝目錄:。..\configure\essemi_swd_print。

  需要注意以下幾點:

  在使用 SWD-Print 功能的函數時,必須先調用函數 int essemi_swd_configupbuffer 以及函數 int essemi_swd_configdownbuffer 來初始化上行(MCU 端到 PC 端)和下行(PC 端到 MCU 端)緩沖區,其中,對于第一個參數 BufferIndex = 0 的時候,SWD 組件已為其配置了緩沖和默認大小,其大小配置是在 essemi_swd_print_conf.h 中通過宏定義進行的 #define BUFFER_SIZE_UP(1024) #define BUFFER_SIZE_DOWN(16),因此,在使用緩沖區 0 時,配置比較簡單,按照該格式即可:

  SWD-Print 目前僅支持字節、半字、字輸出,因此當使用函數 int essemi_swd_printf(unsigned BufferIndex, const char *sFormat, 。..) 時,須根據輸出的數據位寬使用 “%.2x” 、“%.4x” 或 “%.8x” 來格式化輸出。并且,輸出的第一個字符必須為空格。

  在連接 DAP 調試器時,必須確保目標 MCU 程序正確下載并復位,否則將無法連接 DAP 調試器。

  程序示例

  如下程序可產生上面動圖所示的效果。

  3. 全局變量監視模式

  使用說明

? ? ? ?用戶首先需點擊 選擇axf文件 按鈕,載入由編譯器生成的 axf 文件,然后在頁面下方選擇需要監視的全局變量。

  通過點擊下拉框 DAP設備 選擇上位機已掃描到的 DAP 設備,當上位機掃描到目標 CMSIS-DAP 設備時,點擊 打開連接 即可與該設備建立通信。

  左邊為繪圖窗口;右邊為配置窗口,包括 axf 文件和 DAP 設備選擇窗口,數據顯示配置窗口;下方為解析到的全局變量列表。

  全局變量監視繪圖調試的流程如下所述:

  1.   打開 ES-DAP-Viewer 后選擇全局變量監視選項卡,進入全局變量監視界面。
  2.   點擊 選擇axf文件 按鈕,載入由編譯器生成的 axf 文件。
  3.   點擊下拉框 DAP設備 選擇上位機已掃描到的 DAP 設備,當上位機掃描到目標 DAP 設備時,點擊 打開連接 與該設備建立連接。
  4.   在下方全局變量列表中,可查看解析到的全局變量的名稱,地址以及數據類型大小,通過點擊全局變量所在行中,對應的 Color 單元,可選擇該全局變量在波形顯示窗口中的顏色。此外,盡管目前可以解析到結構體變量,但目前不支持對結構體成員和數組成員進行解析,因此在全局變量列表中勾選結構體類型的全局變量是無效的,勾選數組成員會因數組類型的不同而產生不同的效果。
  5.   點擊 開始顯示 按鈕便可在繪圖窗口看到當前調試數據的實時變化波形,在下方全局變量列表的 Value(0x) 列中可查看全局變量的當前值。
  6.   此外,用戶還可在數據處理窗口中選擇保存數據,顯示光標,清除緩存,以及更改背景顏色。
  7.   其余操作可參考 UART-Print 界面操作說明。

  程序示例

  如下程序可產生上面動圖所示的效果。

下載發燒友APP

打造屬于您的人脈電子圈

關注電子發燒友微信

有趣有料的資訊及技術干貨

關注發燒友課堂

鎖定最新課程活動及技術直播

電子發燒友觀察

一線報道 · 深度觀察 · 最新資訊
收藏 人收藏
分享:

評論

相關推薦

STMCube.AI的高級特性

STM32Cube.AI是意法半導體AI生態系統的一部分,是STM32Cube的一個擴展包,它可以自....
發表于 2021-10-28 10:05? 46次閱讀
STMCube.AI的高級特性

航順HK32MCU登陸深圳國際機場

航順芯片,成為了首個登陸深圳機場的高端32位國產MCU的公司,也創下近期該品類最大單筆廣告投放的記錄....
發表于 2021-10-28 10:01? 22次閱讀
航順HK32MCU登陸深圳國際機場

AutoChips杰發科技亮相2021中國汽車工...

10月19日,一年一度的汽車技術盛會——2021中國汽車工程學會年會暨展覽會(SAECCE 2021....
發表于 2021-10-28 09:48? 75次閱讀
AutoChips杰發科技亮相2021中國汽車工...

幾個小妙找教你解決單片機復位層出不窮的問題

在單片機的使用中,經常會接觸到復位電路,它是單片機最小系統重要的一個構成部分。同樣它也是非常重要的一....
發表于 2021-10-28 09:27? 65次閱讀
幾個小妙找教你解決單片機復位層出不窮的問題

如何用MCUXpresso Config Too...

引言 本文介紹了如何使用MCUXpresso Config Tools來快速生成一個可用的USB c....
發表于 2021-10-28 09:22? 76次閱讀
如何用MCUXpresso Config Too...

怎樣使用J-Link將程序下載進MCU呢

怎樣使用J-Link將程序下載進MCU呢?怎樣去操作呢?...
發表于 2021-10-27 06:30? 0次閱讀
怎樣使用J-Link將程序下載進MCU呢

C8051F芯片用UEC-5下載hex文件鏈接不上未發現設備

英文的也鏈接不上,系統是win10 家庭版  。...
發表于 2021-10-26 17:05? 180次閱讀
C8051F芯片用UEC-5下載hex文件鏈接不上未發現設備

如何利用MCU核心板去實現智能車系統設計

智能車系統是由哪些模塊組成的? 如何利用MCU核心板去實現智能車系統設計? ...
發表于 2021-10-26 08:06? 0次閱讀
如何利用MCU核心板去實現智能車系統設計

怎樣使用pahomqtt去連接阿里云IOT呢

怎樣使用pahomqtt去連接阿里云IOT呢?其實現步驟有哪些? ...
發表于 2021-10-26 07:24? 101次閱讀
怎樣使用pahomqtt去連接阿里云IOT呢

怎樣去設計一種基于STM32F407的示波器呢

怎樣去設計基于STM32F407的示波器的硬件電路呢? 怎樣去設計基于STM32F407的示波器的軟件部分呢? ...
發表于 2021-10-26 06:27? 0次閱讀
怎樣去設計一種基于STM32F407的示波器呢

請問Qt for MCU是如何實現的?

Qt for MCU是如何實現的?
發表于 2021-10-25 08:18? 0次閱讀
請問Qt for MCU是如何實現的?

MCU與CPU有哪些區別

什么是MCU? MCU與CPU有哪些區別?
發表于 2021-10-25 07:25? 0次閱讀
MCU與CPU有哪些區別

單片機MCU和CPU有什么區別

單片機MCU和CPU有什么區別? 為什么要從51單片機學起? 單片機和嵌入式有何關系? ...
發表于 2021-10-25 06:51? 0次閱讀
單片機MCU和CPU有什么區別

STM32F030C8的MCU中斷編程的步驟有哪些

NVIC是什么? 中斷優先級分為哪幾種情況呢? STM32F030C8的MCU中斷編程的步驟有哪些? ...
發表于 2021-10-25 06:40? 0次閱讀
STM32F030C8的MCU中斷編程的步驟有哪些

ARM-Linux開發和MCU開發的不同點有哪些

ARM-Linux程序的開發主要分為幾類? ARM-Linux開發和MCU開發的不同點有哪些? ...
發表于 2021-10-22 07:07? 0次閱讀
ARM-Linux開發和MCU開發的不同點有哪些
尤物久久99国产综合精品