mem --read - 2020.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese
重要: このオプションはエンベデッド プロセッサ プラットフォームでは使用できません。

mem --read コマンドは、指定したメモリ アドレスから指定したバイト数を読み出し、その内容を出力ファイルに書き込みます。

コマンド ライン形式は次のとおりです。

xbutil mem --read [-d card] [-a [0x]start_addr] 
[-i size_bytes] [-o output filename]

次の表に、使用可能なオプションを示します。

表 1. xbutil mem --read コマンドのオプション
オプション 説明 必須
-d <card> ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。
注記: xbutil scan コマンドを使用すると、インストールされたカードに対して card_id と BDF の両方が表示されます。
×
-a <start_addr> 有効な開始アドレスを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト アドレスは 0x0 です。

有効なアドレスは、次に示すように、Linux の dmesg コマンドで取得できます。

×
-i <size_bytes> メモリ転送サイズ (バイト) を 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト サイズは 0x20000 です。 ×
-o <output_file_name> 出力ファイル名を指定します。出力ファイル名が指定されない場合、デフォルトの出力ファイル名は memread.out になります。 ×

次は、DDR バンク 0、1、2、および 3 を使用して、xclbin を指定した場合のコマンド出力の例です。

xbutil mem --read -a 0x0 -d2 -i 0x10
INFO: Found total 3 card(s), 3 are usable
INFO: Reading from single bank, 256 bytes from DDR/HBM/PLRAM address 0x4000000000
INFO: Read size 0x100 B. Total Read so far 0x100
INFO: Read data saved in file: memread.out; Num of bytes: 256 bytes
INFO: xbutil mem succeeded.

次に、上記のコマンドで生成されたファイルの例を示します。ファイルを表示するのに、Linux の 16 進数ダンプ コマンドの xxd が使用されています。

00000000: 3d3d 3d3d 5354 4152 5420 6f66 2044 4452  ====START of DDR
00000010: 2044 6174 613d 3d3d 3d3d 3d3d 3d3d 0a00   Data=========..
00000020: 4141 4141 4141 4141 4141 4141 4141 4141  AAAAAAAAAAAAAAAA
00000030: 0a3d 3d3d 3d3d 454e 4420 6f66 2044 4452  .=====END of DDR
00000040: 2044 6174 613d 3d3d 3d3d 3d3d 3d3d 0a00   Data=========..

無効な開始アドレスが使用されると、次のようなエラー メッセージが表示されます。開始アドレスは、そのデバイスのアドレス空間内に含まれる必要があります。この例の場合、0x400 は無効な開始アドレスです。

ERROR: Start address 0x400 is not valid
Available memory banks:
ERROR: xbutil mem failed.
ヒント: grep を使用して、使用可能なアドレス空間を表示します。たとえば、次のコマンドでは、DDR メモリのベース アドレスが表示されます。
dmesg | grep -A 10 -i ddr

Linux の dmesg 出力には、さまざまな DDR メモリのベース アドレスが表示されます。次は、DDR[1] の出力の例です。

[23174.283512] xocl 0000:a6:00.1: xocl_init_mem: Memory Bank: DDR[1]
[23174.283514] xocl 0000:a6:00.1: xocl_init_mem: Base Address:0x8000000000
[23174.283515] xocl 0000:a6:00.1: xocl_init_mem: Size:0x400000000

上記の -i ddr の検索用語を -i hbm に置き換えると、HBM メモリのベース アドレスを検索できます。

既知のバイト パターンを書き込む方法は、mem --write を参照してください。