大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是IAR下調試信息輸出機制之半主機(Semihosting)。 在嵌入式世界里,輸出列印信息是一種非常常用的輔助調試手段,藉助列印信息,我們可以比較容易地定位和分析程式問題。在嵌入式應用設計里實現列印信息輸出的方式有很多,本系列將以 IA ...
可在Windows/Linux/Android上運行,功能豐富的調試工具。
支持數據收發/實時繪圖/快捷方式/文件收發功能。
支持串口/藍牙SPP客戶端/藍牙SPP伺服器/藍牙BLE客戶端/TCP客戶端/TCP伺服器/UDP調試。
使用Qt開發,在Github上開源
特點
跨平臺
- 支持Windows/Linux/Android
- 理論上可支持MacOS
串口調試
- 顯示系統所有可用串口及參數,無需打開設備管理器/查看dmesg
- 可以設置波特率,數據位,停止位,校驗方式,流控方式,可在串口打開時實時更改
- 可以控制DTR, RTS信號,顯示CTS, DSR, DCD, RI(RNG)信號
- 保存上一次連接的參數
- 按照埠名或設備ID保存連接時參數,快速重設連接參數
- (Android端暫不支持串口)
藍牙SPP調試
- 支持常見的串口透傳模塊(HC-05, HC-06, JDY-34, ...)
- 支持PC到手機,PC到PC,手機到手機之間的通信
- 支持客戶端(主機)模式/服務端(從機)模式,可主動連接設備或被設備連接
- 服務端模式可被多個設備連接,可配置每個設備的收髮狀態,可斷開任意設備
- 支持多個藍牙適配器(實驗性功能)
藍牙BLE調試
- 支持顯示已連接設備的所有服務(Service),特征值(Characteristic)和描述符(Descriptor),支持嵌套服務
- 接收和發送可使用不同的服務
TCP
- 支持IPv4/IPv6
- 客戶端:支持指定出站IP和埠號
- 客戶端:遠端地址可以是IP或者功能變數名稱
- 客戶端:支持保存連接時參數並取名,快速重設連接參數
- 服務端:支持在全部網卡或指定網卡上監聽
- 服務端:可被多個設備連接,可配置每個設備的收髮狀態,可斷開任意設備
UDP
- 支持IPv4/IPv6
- 支持在全部網卡或指定網卡上監聽
- 支持保存連接時參數並取名,快速重設連接參數
- 可在運行時直接改變目標遠端地址和埠號
高性能
- 快速響應:數據接收與UI更新分離,可通過關閉接收框實時顯示進一步提速
- 快速響應:耗時較長操作在獨立線程當中完成,不阻塞UI
- 低記憶體占用:關閉實時顯示和繪圖功能後接收位元組數與記憶體消耗約為1:1
數據收發麵板
- 支持16進位顯示, 切換過程中不改變原始數據(如\0)
- 支持導出已選中文本/原始數據
- 每次發送後可添加任意尾碼(\n, \r\n, 文本,Hex數據)
- 重覆發送
- 多種編碼支持
(UTF8/16/32, GB2312/GB18030, BIG5, KOI8-R, Shift_JIS, EUC-KR, ......) - 支持轉義字元
(\r, \n, \t, \0, \123, \xFF, \uABCD, ...) - 可記錄/忽略已發送數據
- 可單獨顯示已發送數據/已接收數據
實時繪圖面板
- 對文本數據進行繪圖,保持人類可讀性
- 可任意拖動畫面,用滾輪自由縮放畫面
- 支持觸摸屏縮放/拖動手勢
- 可跟隨最新數據
- 可同時繪製最多99條曲線
- 多種X軸模式
- 帶圖例,可改變曲線的名字和顏色
- 可顯示/隱藏曲線
- 可以在收到指定數據後清空繪圖區,也可手動清空
- 提供STM32/Arduino/STM8常式以及數據轉文本函數
控制(快捷方式)面板
- 一鍵發送指定數據
- 快速發送數值,用於調整參數
- 支持發送16進位內容
- 支持轉義字元
- 支持添加首碼尾碼
- 支持導入/導出
文件收發麵板
- 支持快速計算CRC32校驗值
- 發送:可配置自動暫停,每發送一定數量位元組後暫停一段時間,便於接收方處理
- 接收:可配置自動停止,在接收到指定數量位元組後自動停止接收
- CRC32計算和文件讀寫流程在獨立的線程中運行,提高速度
人性化界面
- 可在單個視窗上顯示多個面板
- 每個面板可拆分為子視窗
- PC端支持視窗置頂
- PC端支持設置視窗不透明度
- PC端程式可多開,標題欄會顯示當前工作模式
- 可在狀態欄查看當前連接參數,並快速斷開/重連
- 支持改變字體
- 支持改變語言
綠色免安裝
- 僅產生單個配置文件
- Windows版本不改變註冊表項
- 配置文件預設位於運行目錄下,也可位於系統預設配置文件夾中
- 支持導入/導出/清空配置文件
- 支持清空連接歷史記錄,改變歷史記錄最大條數,減少空間占用
適配Android
- 小屏適配:可設置強制橫屏
- 小屏適配:數據收發麵板可僅顯示已發送/已接收數據
- 小屏適配:支持全屏模式
- 繪圖界面支持縮放/拖動手勢
- 支持分享文本到SerialTest併發送
預覽
下載地址
https://github.com/wh201906/SerialTest/releases