メモリを書き込みます。
構文
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 ワードをメモリに書き込みます。64 ビットを超えるデータを書き込むには、アドレスと共にデータ ワード数を指定します。書き込まれるデータは、アクセス サイズの倍数になります。たとえば、128 ビットのデータを書き込むには、mwr -size d <addr> 2 または mwr -size w <addr> 4 を実行します。 |
-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
Zynq の APB-AP CSW に 0x80000042 を書き込みます。上位 8 ビット (0x1) は APB-AP を選択し、下位 8 ビット (0x0) は CSW のアドレスを指定します。
mwr -arm-dap 0x04 0xf8000120
Zynq の AHB-AP TAR に 0xf8000120 を書き込みます。上位 8 ビット (0x0) は AHB-AP を選択し、下位 8 ビット (0x4) は TAR のアドレスを指定します。
mwr -arm-ap 1 0x80090088 0x03186003
DAP APB-AP のアドレス 0x80090088 に 0x03186003 を書き込みます。AP 1 が APB-AP を選択します。APB-AP の 0x80090088 は、Zynq の Cortex-A9#0 の DBGDSCR に該当します。
mwr -arm-ap 0 0xe000d000 0x80020001
DAP AHB-AP のアドレス 0xe000d000 に 0x80020001 を書き込みます。AP 0 が AHB-AP を選択します。AHB-AP の 0xe000d000 は、Zynq の QSPI に該当します。