XSDB では、JTAG を使用した仮想 UART がサポートされます。これは、物理的な UART が存在しない場合や機能していない場合に便利です。JTAG UART を使用するには、STDIO を JTAG UART にリダイレクトするようにソフトウェア アプリケーションを変更する必要があります。Vitis IDE では、Arm ベース デザインに STDIO の仮想 UART へのリダイレクトをサポートする CoreSight™ ドライバーが含まれます。MicroBlaze デザインの場合、uartlite ドライバーが使用できます。仮想 UART ドライバーを使用するには、Vitis IDE でボード サポート設定を開いて STDIN / STDOUT を coresight/mdm に変更します。
XSDB では、2 つのコマンドを介して仮想 UART がサポートされます。
-
jtagterminal
: JTAG ベースのハイパーターミナルを開始/停止します。このコマンドは、STDIO 用に新しいターミナル ウィンドウを開きます。このターミナルからのテキスト入力が STDIN に送信され、STDOUT からの出力はすべてこのターミナルに表示されます。 -
readjtaguart
: JTAG UART からの読み出しを開始/停止します。このコマンドは STDOUT のポーリングを開始して、XSDB ターミナルに表示するか、ファイルに保存します。
次に、STDIO 用に JTAG ターミナルを使用する方法を示す XSCT セッション例を示します。
connect
source ps7_init.tcl
targets -set -filter {name =~"APU"}
loadhw system.xsa
stop
ps7_init
targets -set -nocase -filter {name =~ "Arm*#0"}
rst –processor
dow <app>.elf
jtagterminal
con
jtagterminal -stop #after you are done
次に、JTAG UART 用に XSCT コンソールを STDOUT として使用する方法を示す XSCT セッション例を示します。
connect
source ps7_init.tcl
targets -set -filter {name =~"APU"}
loadhw system.xsa
stop
ps7_init
targets -set -nocase -filter {name =~ "Arm*#0"}
rst –processor
dow <app>.elf
readjtaguart
con
readjtaguart -stop #after you are done
次に、STDOUT を JTAG UART からファイルにリダイレクトする方法示す XSCT セッション例を示します。
connect
source ps7_init.tcl
targets -set -filter {name =~"APU"}
loadhw system.xsa
stop
ps7_init
targets -set -nocase -filter {name =~ "Arm*#0"}
rst –processor
dow <app>.elf
set fp [open uart.log w]
readjtaguart -handle $fp
con
readjtaguart -stop #after you are done