存储器写入。
语法
mwr [options] <address> <values> [num]
将 <num>
数据值从 <values>
列表写入由 <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,那么该调试器会选择相应的访问大小。例如,1. mwr -size b 0x0 {0x0 0x13 0x45 0x56} 调试器向存储器写入 1 个字,共 4 字节。2. mwr -size b 0x0 {0x0 0x13 0x45} 调试器向存储器写入 1 个半字和 1 个字节,共 3 字节。3. 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 地址。为保证向后兼容性,可使用 -arm-dap 和 -arm-ap 选项,这两个选项分别对应“-address-space APR”和“-address-space AP<n> ”。APR 地址范围是 0x0 - 0xfffc,其中高 8 位选择 AP,低 8 位即为该 AP 的寄存器地址。 |
-unaligned-accesses
|
执行写入操作前,存储器地址不对齐到访问大小。根据目标架构来确定是否支持未对齐的地址。如果不指定该选项,那么地址会自动对齐到访问大小。 |
注释
- 请选择 APU 目标以访问 Arm DAP 和 MEM-AP 地址空间。
返回
如果成功,则不返回任何结果。如果无法写入目标存储器,则返回错误字符串。
示例
mwr 0x0 0x1234
将 0x1234 写入地址 0x0。
mwr 0x0 {0x12 0x23 0x34 0x45}
将 4 个码字从值列表写入地址 0x0。
mwr 0x0 {0x12 0x23 0x34 0x45} 10
将 4 个码字从值列表写入地址 0x0,并在剩余 6 个地址位置处填充来自列表的最后 1 个字。
mwr -size b 0x1 {0x1 0x2 0x3} 3
将 3 字节从值列表写入地址 0x1。
mwr -size h 0x2 {0x1234 0x5678} 2
将 2 个半字从值列表写入地址 0x2。
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 地址。AP 1 选择 APB-AP。APB-AP 上的 0x80090088 对应于 Zynq 上的 Cortex-A9#0 的 DBGDSCR。
mwr -arm-ap 0 0xe000d000 0x80020001
将 0x80020001 写入 DAP AHB-AP 上的 0xe000d000 地址。AP 0 选择 AHB-AP。AHB-AP 上的 0xe000d000 对应于 Zynq 上的 QSPI 器件。