mwr - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

存储器写入。

语法

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 器件。