天天看點

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

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配置

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程
Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

(3)打開調試界面,在XSCT視窗中使用<connect>指令和已建鍊裝置進行連接配接

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

(4)通過<target>指令擷取已連結的裝置

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

(5)可以看到正在運作的裝置為target 3,通過指令<target 3>選擇調試硬體

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

(6)通過指令<memmap>指定符号檔案,調試器将目标上代碼映射到符号檔案,可以使用指令反向跟蹤,進一步調試。

示例:memmap -file <../Debug/xxx.elf>

【注意】這裡使用的xxx.elf必須和已經固化到flash中的固件完全一緻

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程

(7)完成以上步驟後,通過Expressions檢視全局變量,通過memory視窗檢視寄存器資訊等功能全部可以支援。

Xilinx通過JTAG調試固化運作的程式1. 問題發現2. XSCT指令行套件3. 實驗環境4. 實驗目的5. 操作流程
  1. 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. 參考

(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