2017-04-12 58 views
0

我正在使用德州儀器Hercules(Cortex-R4F)處理器的gdb(arm-none-eabi)。我使用的是德州儀器公司的XDS代理作爲遠程GDB服務器GDB如何確定ARM體系結構

在GDB運行

target remote ip:port 

後,GDB將與XDS GDBSERVER連接。然後我就可以打印寄存器

info all-registers 

它讓我看到CPU寄存器,但是這導致我也F7和FPA寄存器的結論是,CPU有一個浮點協處理器(FPA)。但情況並非如此。處理器有vfpv3。所以GDB使用錯誤的寄存器定義導致問題。

我試圖通過設置

set debug remote 1 

找到由XDS GDB服務器發送的數據包的信息,但找不到任何信息。 GDB如何確定要使用的寄存器定義?

更新: 我發現集架構命令:

set architecture 

>Requires an argument. Valid arguments are arm, armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5te, xscale, ep9312, iwmmxt, iwmmxt2, arm_any, auto. 

的Cortex-R4F是ARMv7的與VFPv3的。我該如何設置它?

+0

首先像編譯器,彙編器,鏈接器它爲ARM編譯。但除此之外,它可能是通用的,除非您明確告訴它具體是什麼。舊的武器沒有CPUID的東西,新的那樣做,所以它不能檢測。你的命令行是什麼,有沒有指定架構的選項? –

+0

我不希望知道讓我們這樣說。 –

+0

或以另一種方式說。就像工具鏈一樣,人類知道,但工具可能不是,所以人類告訴工具... –

回答

1

TI的XDS代理充當GDBServer。

但它並不包如qXfer迴應:特點:閱讀......得到目標

信息最後我手動應用:

set tdesc filename /gdb/binutils-gdb/gdb/features/arm/arm-with-vfpv3.xml 

此設置正確的功能爲Corter-R4f,並允許我設置斷點,通話功能等。

唉,我們現在發現了其他問題。看來TI的XDS GDBserver代理不太穩定。