簡體   English   中英

ARM GDB無法僅在Linux上訪問內存

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM