之前的文章:分享一個很酷的上位機軟件。很多朋友都很喜歡這樣子的工具,這樣的上位機固然好用,但是這依然依賴于我們的系統資源。
本次分享另一種相似的工具、方法,不依賴于系統資源,但需要額外的硬件支持,但是這樣一個硬件就是常用的Jlink調試工具。
我們常常都只是用Jlink來在線調試程序、下載程序。其實Jlink的用處很多,我們要好好運用。本篇筆記我們就來分享一下Jlink的另一個用途:使用Jlink+JScope顯示波形。
什麽是JScope?
J-Scope 是 SEGGER 推出的波形顯示軟件,傻瓜式,簡單易上手。軟件界面如下:
其有兩種方式來顯示波形,一種是 HSS 模式 ,另一種是RTT模式。這裏我們分享的是RTT模式的使用。
實驗演示(keil工程)
(1)准備工作
實驗的前提是需要有Jlink仿真器(V9或V10),其它的有些不能與JScope搭配使用 。同時要裝好Jlink驅動與JScope上位機軟件:
(2)工程移植、測試代碼編寫
安裝好JScope軟件之後,在其安裝目錄下會有如下源碼:
我們這裏的路徑是:
C:\Program Files (x86)\SEGGER\JScope_V611m\Sample\Example Code RTT
複制如下三個文件至我們的keil工程目錄下:
然後在keil中添加至我們的demo工程裏,並包含頭文件SEGGER_RTT.h即可。然後編寫如下測試代碼:
SEGGER_RTT_ConfigUpBuffer 函數說明:
- 第 1 個參數要填通道 1,實際測試通道 0 不可用
- 第 2 個參數非常重要,要使用固定的格式,字符串 JScope_是固定的,主要是下劃線後面的字符。 支持的格式如下:
比如:JScope_I4I4 表示數據包格式由兩個有符號32位數據組成。
- 最後一個參數的備選項爲:
- 使用 RTT 模式的話,最後一個參數僅支持 SEGGER_RTT_MODE_NO_BLOCK_SKIP 和 SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL 。
關于SEGGER_RTT,之前已經有分享其實現打印功能的方法,感興趣的朋友可閱讀:STM32中另一種打印調試的方法
最後,編譯下載到板子裏。
(3)JScope上位機配置
首先,創建工程:
設置爲RTT模式:
設置目標設備(我們這裏使用的是STM32F103ZE):
使用Jlink連接目標板(SWD方式):
連接三根線即可,TMS、TCLK、GND。具體的JTAG接口引腳順序如:
點擊開始采樣(前提是程序已經跑起來):
波形顯示:
以上就是本次的分享,希望各位喜歡!