存储器读取。
语法
mrd [options] <address> [num]
从 <address> 指定的活动目标存储器地址中读取 <num> 数据值。
选项
| 选项 | 描述 |
|---|---|
-force
|
覆盖访问保护。默认情况下,阻止访问保留地址和无效地址范围。 |
-size <access-size>
|
<access-size> 可采用以下任一值:b = 字节访问;h = 半字访问;w = 全字访问;d = 双字访问;默认访问大小为 w。如果不使用“-unaligned-access”选项,地址将对齐到访问大小,然后再读取存储器。对于不支持双字访问的目标,调试器会使用 2 次全字访问。如果要读取的数据值数量大于 1,那么该调试器会选择相应的访问大小。例如,1. mrd -size b 0x0 4 调试器访问存储器中的 1 个码字,并显示 4 字节。2. mrd -size b 0x0 3 调试器访问存储器中的 1 个半字和 1 个字节,并显示 3 字节。3. mrd 0x0 3 调试器访问存储器中的 3 个码字,并显示 3 个码字。如需读取的数据超过 64 位,则请同时指定数据字数和地址。读取的数据为访问大小的倍数。例如,要读取 128 位数据,请运行“mrd -size d <addr> 2”或“mrd -size w <addr> 4”。 |
-value
|
返回 Tcl 值列表,而不是在控制台上显示结果。 |
-bin
|
返回从目标读取的数据(二进制格式)。 |
-file <file-name>
|
将从目标读取的二进制数据写入 <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-access
|
执行读取操作前,存储器地址不对齐到访问大小。根据目标架构来确定是否支持未对齐的地址。如果不指定该选项,那么地址会自动对齐到访问大小。 |
注释
- 请选择 APU 目标以访问 Arm DAP 和 MEM-AP 地址空间。
返回
如果成功,则按请求的格式返回存储器地址和数据。如果无法读取目标存储器,则返回错误字符串。
示例
mrd 0x0
读取位于 0x0 处的 1 个码字。
mrd 0x0 10
读取位于 0x0 处的 10 个码字。
mrd -value 0x0 10
读取位于 0x0 处的 10 个码字,并返回 Tcl 值列表。
mrd -size b 0x1 3
读取位于地址 0x1 处的 3 字节。
mrd -size h 0x2 2
读取位于地址 0x2 处的 2 个半字。
mrd -bin -file mem.bin 0 100
读取位于地址 0x0 处的 100 个码字,并将二进制数据写入 mem.bin。
mrd -address-space APR 0x100
读取 Zynq 上的 APB-AP CSW。高 8 位 (0x1) 选择 APB-AP,低 8 位 (0x0) 则为 CSW 的地址。
mrd -address-space APR 0x04
读取 Zynq 上的 AHB-AP TAR。高 8 位 (0x0) 选择 AHB-AP,低 8 位 (0x4) 则为 TAR 的地址。
mrd -address-space AP1 0x80090088
读取 DAP APB-AP 上的地址 0x80090088。AP 1 选择 APB-AP。APB-AP 上的 0x80090088 对应于 Zynq 上的 Cortex-A9#0 的 DBGDSCR。
mrd -address-space AP0 0xe000d000
读取 DAP AHB-AP 上的地址 0xe000d000。AP 0 选择 AHB-AP。AHB-AP 上的 0xe000d000 对应于 Zynq 上的 QSPI 器件。