01、虛擬示波器
說到虛擬示波器,大家應該都不陌生,在學校時開發智能車,調節PID時虛擬示波器是必須的工具,虛擬示波器軟體有很多,之前我也分享過一篇文章《一個超贊的開源串口虛擬示波器專案》,基于QT的開源軟體,大家有興趣可以看一下,一般情況下虛擬示波器軟體都是通過串口接收資料的,所以要求MCU通過串口把資料打包成軟體支持的協議發給虛擬示波器軟體,

02、J-Scope是什么
J-Scope是J-link的功能之一,J-Link是SEGGER公司為支持仿真ARM內核芯片推出的JTAG仿真器,簡單地說,是一個JTAG協議轉換盒,關于J-Link可以看之前的文章《關于JTAG你知道和不知道的都在這里》《JLink cmd的使用》,

J-Scope也是SEGGER公司推出的,使用Jlink連接MCU后,可以在目標MCU運行時,實時分析資料并圖形化顯示的軟體,
J-Scope可以以類似示波器的方式顯示多個變數的值,它讀取elf或axf檔案并允許選擇多個變數進行可視化,
只需將目標微控制器連接到J-Link并啟動J-Scope,幾個步驟即可配置J-Scope,并選擇要顯示的符號,如下圖

J-Scope主要有RTT和HSS兩種作業模式,
RTT模式:需要用戶在MCU上添加代碼,有點類似串口上傳資料,因為有額外的代碼,所以需要占用MCU的資源,優點是速度快,缺點是需要額外的代碼,
HSS模式:不需要用戶在MCU上添加任何代碼,只需要使用J_Scope加載MDK或IAR的可執行檔案即可,而且可以隨時鏈接MCU,不影響MCU的正常功能,不需要額外的資源,使用標準的SWD介面即可,優點是不需要添加代碼,缺點是速度較慢,一般為1K,
因為HSS模式不需要額外添加任何代碼,所以我比較喜歡HSS模式,日常開發中也經常用到HSS模式,下文將重點講解HSS模式,
軟體準備,要使用J-Scope功能,除了一個JLink外,還需要安裝J-Flash和J-Scope軟體,下載鏈接如下
下載鏈接:https://pan.baidu.com/s/1KO13rZw8RVyIQPN4Qpp4-w
提取碼:eqxx
03、HSS模式
首先撰寫測驗代碼,將程式下載到單片機內
#include "main.h" #include <math.h> /* sin */ RCC_ClocksTypeDef RCC_Clocks; float x = 0; double sin_o = 0; double cos_o = 0; int main(void) { RCC_GetClocksFreq(&RCC_Clocks); while (1) { x += 1; if(x >= 360) x = 0; sin_o = sin(x*3.14/180); cos_o = cos(x*3.14/180); } }
J-Scope軟體的配置
新建工程,在①處選擇USB,大部分情況下我們都是使用USB連接的Jlink的,在②處在SpecifyTargetDevice處選擇對應的單片機型號,在③處選擇不同介面,我這里使用的SWD介面,在④處選擇HSS模式,額外說明⑤處的中文亂碼是us,
特別說明,在⑥處加載keil工程生成的.axf檔案或IAR工程生成的.out檔案,路徑中最好不要有中文,點擊OK完成配置,

接下來選擇要觀察的變數,不僅僅如下cos_o的變數,還有RCC_Clocks結構體變數也可以監控,只能選擇全域變數,這也是J-Scope的局限性

如果選擇完畢,需要增加其他變數,可以在線圖方框中右鍵,點擊AddSymbols新增變數,選中已經已經添加的變數,按del鍵就可以洗掉,

點擊紅色按鈕開始運行

兩個技巧:移動下圖①處的三角可以快速上下移動波形,如②處在變數上右鍵可以使用快捷選單,

04、總結
J-Scope個人覺得是一個不錯的工具,可以方便查看某些資料的波形,在ADC采集,溫度傳感器等等具有一定的作用,
比如一種情況:MCU采集溫度資料,通過串口報給其他設備,這時候其他設備顯示有很多例外的溫度值,這個時候需要定位是MCU采集錯了,還是其他設備決議資料錯了,如果還在開發中,這個時候debug既可,但在已經發布的軟體中,使用示波器監控決議串口資料是一個麻煩的事情,這個時候使用J-Scope就可以顯示MCU采集的溫度(保存在全域變數中),不過這要求發布版本時,保存一份.ou檔案或.axf檔案,
J-Scope這么強大,但是依舊取代不了通過硬體串口發送給PC虛擬示波器的軟體,因為J-Scope只能讀取全域變數的資料,我們使用硬體串口可以將函式的區域變數發給虛擬示波器,
本文提供了一種針對發布版軟體,在沒有其他“埋點”列印的情況下,如何監控全域變數的方法,之前的文章《JLink cmd的使用》也提供了一種思路解決類似的問題,有興趣的同學可以看一下,
文末說句感想,開發中使用的用具沒有好壞,只是使用場景不同,多掌握幾種工具,就可以多一些辦法解決一些刺手的問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/302404.html
標籤:嵌入式
