1. 問題發現
在使用者現場非線上調試的情況下,能否通過Xilinx JTAG調試監控正在運作的程式
2. XSCT指令行套件
XSCT(Xilinx Software Command-Line Tool),具體請參照UG1208; Jtag-uart 是比較偏門的一個應用,就是在沒有外接uart的情況下,通過jtag口來擷取處理器的stdio資料,實作jtag-uart的互動
3. 實驗環境
(1)開發工具版本:Xilinx SDK 2017.4
(2)開發硬體平台:microblaze
4. 實驗目的
在程式完成固化的情況下,通過JTAG調試目标闆上正在運作的程式,實時監控程式運作狀态。
5. 操作流程
(1)開發闆正常上電并加載成功
(2)在調試界面中,進行systemDebug配置
(3)打開調試界面,在XSCT視窗中使用<connect>指令和已建鍊裝置進行連接配接
(4)通過<target>指令擷取已連結的裝置
(5)可以看到正在運作的裝置為target 3,通過指令<target 3>選擇調試硬體
(6)通過指令<memmap>指定符号檔案,調試器将目标上代碼映射到符号檔案,可以使用指令反向跟蹤,進一步調試。
示例:memmap -file <../Debug/xxx.elf>
【注意】這裡使用的xxx.elf必須和已經固化到flash中的固件完全一緻
(7)完成以上步驟後,通過Expressions檢視全局變量,通過memory視窗檢視寄存器資訊等功能全部可以支援。
- XSCT支援的其他指令和功能
請根據具體需求自行試驗
(1)connections - Target Connection Management
(2)registers - Target Registers
(3)running - Program Execution
(4)memory - Target Memory
(5)download - Target Download FPGA/BINARY
(6)reset - Target Reset
(7)breakpoints - Target Breakpoints/Watchpoints
(8)streams - Jtag UART
(9)miscellaneous - Miscellaneous
(10)jtag - JTAG Access
(11)tfile - Target File System
(12)svf - SVF Operations
(13)sdk - SDK Projects
(14)petalinux - Petalinux commands
(15)hsi - HSI commands
- 參考
(1)【Debugging a Program Already Running on the Target】
https://www.xilinx.com/html_docs/xilinx2018_1/SDK_Doc/xsct/use_cases/xsdb_debug_program_running_on-target.html
(2)【Xilinx軟體指令行工具:XSCT開發和調試】
http://www.elecfans.com/d/817485.html