[英]ARM GDB cannot access memory only on Linux
试图将开发切换到Linux,但遇到(可能是简单的新手)问题。 在我的Mac,我可以使用ARM GDB( arm-eabi-none-gdb
从GNU ARM嵌入式工具链)我的加载elf
我STM32L432,然后在我的断点简单的i lo
(或检查,或者别的什么)给我的当地的变种。 但是,在Linux上,完全相同的代码给出了类似以下内容:
cr1 = <error reading variable cr1 (Cannot access memory at address 0x2000fff4)>
有没有什么我应该做的不同正确映射内存?
编辑:我想今天我将重新启动整个SRAM块的存储转储(数据表RM0394第63页),看看是否只有一些偏移(可能是某种我不知道的内存别名),但即使是dump
命令也是如此受到阻碍:
(gdb) dump ihex memory result.bin 0x20000000 0x40000000
Cannot access memory at address 0x2000c000
这在我的Mac上没有发生,我可以在我的示波器上看到我正在寻找的数据(没有像使用示波器的调试软件那样),所以问题不在于SRAM,而在于gdb
。
对于投票结束的人,你能指明一下这是什么样的话题吗? 我正在使用gdb
逐步执行代码,并且我提到的所有内容都有标记,这使我相信这是一个适合该问题的地方。 我不是要求“调试帮助”,如“帮助调试特定代码”,我在一些常见的设备上寻求帮助,使用非常广泛的调试器。
对于今后遇到此问题的任何人( sc。我自己),问题是gdb没有跟踪包含我的SRAM( 即 0x2000c000到0x40000000)的内存区域。 修复是手动设置内存区域。
之前:
(gdb) info mem
Using memory regions provided by the target.
Num Enb Low Addr High Addr Attrs
0 y 0x00000000 0x00040000 ro nocache
1 y 0x08000000 0x08040000 flash blocksize 0x800 nocache
2 y 0x1fff0000 0x1fff7000 ro nocache
3 y 0x1ffff800 0x1ffff810 ro nocache
4 y 0x20000000 0x2000c000 rw nocache
5 y 0x40000000 0x5fffffff rw nocache
6 y 0xe0000000 0xffffffff rw nocache
后:
(gdb) mem 0x2000c000 0x40000000 32 rw
(gdb) info mem
Using user-defined memory regions.
Num Enb Low Addr High Addr Attrs
0 y 0x00000000 0x00040000 ro nocache
1 y 0x08000000 0x08040000 flash blocksize 0x800 nocache
2 y 0x1fff0000 0x1fff7000 ro nocache
3 y 0x1ffff800 0x1ffff810 ro nocache
4 y 0x20000000 0x2000c000 rw nocache
1 y 0x2000c000 0x40000000 rw 32 nocache
5 y 0x40000000 0x5fffffff rw nocache
6 y 0xe0000000 0xffffffff rw nocache
(gdb) x/x cr1
0x36c: 0x60f8af00
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.