重要: このオプションはエンベデッド プロセッサ プラットフォームでは使用できません。
mem --read
コマンドは、指定したメモリ アドレスから指定したバイト数を読み出し、その内容を出力ファイルに書き込みます。
コマンド ライン形式は次のとおりです。
xbutil mem --read [-d card] [-a [0x]start_addr]
[-i size_bytes] [-o output filename]
次の表に、使用可能なオプションを示します。
オプション | 説明 | 必須 |
---|---|---|
-d <card>
|
ターゲット カードを指定します。<card> は、card_id または Bus:Device:Function (BDF) のいずれかに指定できます。指定しない場合は、デフォルトの card_id = 0 になります。 注記:
xbutil scan コマンドを使用すると、設置されたカードの ID と BDF の両方が表示されます。 |
N |
-a
<start_addr>
|
有効な開始アドレスを 16 進数または 10 進数のいずれかのフォーマットに指定します。16 進数フォーマットは、0x100 など、0x で開始する必要があります。デフォルト アドレスは 0x0 です。有効なアドレスは、次に示すように、Linux の |
× |
-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 を参照してください。