我是新來的,或更好的生鏽(是62)。SIGSEGV在Beaglebone黑色(ARM)交叉編譯w/Eclipse的內存訪問 - Linaro
試圖在Beaglebone Black上運行使用Eclipse Luna CDT和linaro工具在IP上運行Debian。 我成功運行並調試了標準helloworld.c。 需要快速控制GPIO(以連接到不常見的外設),但是 所有試圖讀取或寫入存儲器映射寄存器的嘗試都失敗。
指令 i = (*((volatile unsigned int *)(0x4804c130)))
,其應該閱讀
子與信號端接GPIO狀態寄存器結果= 0XB(SIGSEGV) GDBSERVER離開 註銷
這是我編譯沒有源(hellobone.c)錯誤:
int main(void)
{
unsigned int i = 1;
i = (*((volatile unsigned int *)(0x4804c130))) ;
}
(我試過這個指針算術的所有變體)
生成文件跡:(忽略包括)
--- --- COMPILE C:/hellobone/source/hellobone.c 「C:\ GCC-Linaro的\ BIN \臂-Linux的gnueabihf-GCC .exe「-c -o C:/hellobone/object/hellobone.o C:/hellobone/source/hellobone.c -marm -O0 -g -I。 -IC:/ hellobone /包括
。 --- LINK --- 「C:\ gcc-linaro \ bin \ arm-linux-gnueabihf-gcc.exe」-o hellobone C:/hellobone/object/hellobone.o C:/ hellobone/object/tools .o C:/hellobone/object/gpio_v2.o -marm -O0 -g -I。 -IC:/ hellobone /包括
。
二進制崩潰也以root運行從TTY:
[email protected]:~# ./hellobone
Segmentation fault
我在BBB的Debian安裝Eclipse和讀取和寫入內存工作得很好。編譯太慢,而且不穩定,要實用。
閱讀記憶應該是可行的。我究竟做錯了什麼?
我懷疑
GNU gdbserver (GDB) 7.4.1-debian
This gdbserver was configured as "arm-linux-gnueabihf"
但也許我缺少明顯的東西,還沒有看到關於這個問題的任何職位......
難住了。現在正在爲此工作數月。設置工具鏈很沮喪,沒有什麼作品在YouTube視頻..
任何幫助將非常感激
馬爾科
兩個字:虛擬內存。 – Notlikethat 2015-02-11 12:15:12