mwr
メモリ書き込み。
構文
mwr [options] <address> <values> [num]
<values> のリストからの <num> データ値を <address> で指定したアクティブなターゲット メモリ アドレスに書き込みます。<num> を指定しない場合、リストからのすべての <values> が <address> で指定したアドレスに順次書き込まれます。<num> が <values> リストのサイズよりも大きい場合、リストの最後のワードで残りのアドレス位置が埋められます。
mwr [options] -bin -file <file-name> <address> [num]
バイナリ ファイルから <num> データ値を読み出して、<address> で指定したアクティブなターゲット メモリ アドレスに書き込みます。<num> を指定しない場合、そのファイルからのデータすべてが <address> で指定したアドレスから順次書き込まれます。
オプション
| オプション | 説明 |
|---|---|
-force |
アクセス保護を解除します。デフォルトでは、予約されているアドレス範囲および無効なアドレス範囲へのアクセスはブロックされます。 |
-bypass-cache-sync |
メモリ書き込み中に CPU キャッシュをフラッシュまたは無効化しないようにしてください。このオプションを指定しておかないと、デバッガーはキャッシュをフラッシュまたは無効化して、キャッシュが同期するようにします。 |
-size <access-size> |
<access-size> は、b = バイト アクセス、h = ハーフワード アクセス、w = ワード アクセス、d = ダブルワード アクセスのいずれかの値にできます。デフォルトのアクセス サイズは w です。アドレスは、-unaligned-access オプションが使用されない場合は、メモリへ書き込まれる前にアクセス サイズに揃えられます。ターゲットでダブルワード アクセスがサポートされない場合、デバッガーは 2 ワード アクセスを使用します。書き込まれるデータ値が 1 より大きい場合、デバッガーは適切なアクセス サイズを選択します。たとえば、mwr -size b 0x0 {0x0 0x13 0x45 0x56} の場合、デバッガーは 4 バイトを 1 ワードにまとめてメモリに書き込みます。mwr -size b 0x0 {0x0 0x13 0x45} の場合、デバッガーは 3 バイトをまとめて 1 ハーフワードと 1 バイトをメモリに書き込みます。mwr 0x0 {0x0 0x13 0x45} の場合、デバッガーは 3 ワードをメモリに書き込みます。 |
-bin |
ファイルからバイナリ データを読み出して、ターゲット アドレス空間に書き込みます。 |
-file <file-name> |
バイナリ データを読み出してターゲット アドレス空間へ書き込むファイル。 |
-address-space <name> |
現在のターゲットのデフォルト メモリ空間ではなく、指定したメモリ空間にアクセスします。Arm DAP ターゲットの場合、アドレス空間 DPR、APR、および AP<n> を使用すると、それぞれ DP レジスタ、AP レジスタ、および MEM-AP アドレスにアクセスできます。下位互換性のため、-address-space APR の短縮形の -arm-dap、-address-space AP<n> の短縮形の -arm-ap も使用できます。APR アドレス範囲は 0x0 ~ 0xfffc で、上位 8 ビットで AP を選択し、下位 8 ビットでその AP のレジスタ アドレスを指定します。 |
-unaligned-accesses |
メモリ アドレスは、書き込み操作を実行する前にはアクセス サイズに揃えられません。揃えられていないアドレスのサポートは、ターゲット アーキテクチャによって異なります。このオプションを指定しない場合、アドレスは自動的にアクセス サイズに揃えられます。 |
注記
- Arm DAP および MEM-AP アドレス空間にアクセスする APU ターゲットを選択します。
戻り値
問題がない場合は何も返されません。ターゲットが書き込めない場合はエラー文字列が返されます。
例
mwr 0x0 0x1234
0x1234 をアドレス 0x0 に書き込みます。
mwr 0x0 {0x12 0x23 0x34 0x45}
値のリストから 4 ワードをアドレス 0x0 に書き込みます。
mwr 0x0 {0x12 0x23 0x34 0x45} 10
値のリストから 4 ワードをアドレス 0x0 に書き込んで、リストからの最後のワードで残り 6 つのアドレス位置を埋めます。
mwr -size b 0x1 {0x1 0x2 0x3} 3
アドレス 0x1 にリストからの 3 バイトを書き込みます。
mwr -size h 0x2 {0x1234 0x5678} 2
アドレス 0x2 にリストから 2 ハーフワードを書き込みます。
mwr -bin -file mem.bin 0 100
バイナリ ファイルの mem.bin から 100 ワードを読み出して、ターゲット アドレス 0x0 にデータを書き込みます。
mwr -arm-dap 0x100 0x80000042
0x80000042 を Zynq の APB-AP CSW に書き込みます。上記 8 ビット (0x1) で APB-AP を選択します。下位 8 ビット (0x0) は CSW のアドレスです。
mwr -arm-dap 0x04 0xf8000120
0xf8000120 を Zynq の AHB-AP TAR に書き込みます。上位 8 ビット (0x0) で AHB-AP を選択します。下位 8 ビット (0x4) は TAR のアドレスです。
mwr -arm-ap 1 0x80090088 0x03186003
0x03186003 を DAP APB-AP のアドレス 0x80090088 に書き込みます。0x80090088 は Zynq の Cortex-A9#0 の DBGDSCR レジスタに該当します。AP1 で APB-AP を選択します。
mwr -arm-ap 0 0xe000d000 0x80020001
0x80020001 を DAP AHB-AP のアドレス 0xe000d000 に書き込みます。0xe000d000 は Zynq の QSPI デバイスに該当します。AP0 で AHB-AP を選択します。