2011-07-04 41 views
1

我正在使用GCC交叉編譯器編譯爲ARM平臺。我有一個問題,使用opitmization -O3爲臨時文件ccm4baaa.s上的偏移量(4104)提供了一個「錯誤的立即值」。無法找到此文件。ARM彙編程序:錯誤的立即值偏移

如何調試此錯誤或找到錯誤的來源?我知道它位於hyper.c的某個位置,但不可能找到它,因爲hyper.c中沒有顯示錯誤。只有上面的神祕錯誤信息。

問候

Gigu先生

+0

哪個版本的編譯器? –

+0

如果.s臨時程序集文件是編譯器創建目標文件時創建的文件,那麼它聽起來像編譯器中的錯誤。我會得到有關GCC編譯器的確切版本/變體信息,並搜索該版本的「已知錯誤」(或假定您沒有最新版本,請在以後的版本中搜索修正的錯誤)。 – Dan

回答

1

目前已在海灣合作委員會的早期版本類似的已知的bug。這可能只是更新您的GCC工具鏈版本的問題。你目前使用哪一個?

+0

Im使用arm-elf-gcc 3.4.3 – MrGigu

+0

如果我沒有記錯,GCC達到了4.6.0。我會升級你的工具鏈。 – tangrs

+1

是的,你的確在使用一個很老的工具鏈。嘗試從CodeSourcery這一個:http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@ template =精簡版 – NullPointer

0

爲了調試問題並找到有問題的源代碼,在這些情況下,有助於將gcc選件-save-temps添加到編譯中。其效果是編譯器會保留中間程序集文件(和預處理器輸出)供您檢查。