[英]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.