2012-11-01 42 views
3

所以我有一個C文件聲明瞭一些全局變量。該文件將與一堆ARM彙編文件一起編譯。我如何在彙編中使用這些全局變量?使用C中聲明的全局變量,Arm裝配

我可以簡單地這樣做:

... 
LDR r0, =GLOBAL_VAR 
... 

謝謝。

我嘗試使用以下鏈接:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0203j/Cihcciij.html

但它告訴我,「進口」是一個未定義的指令。

此外,我使用arm-linux-gcc交叉編譯器和pxa270處理器。

+1

編譯器?目標?開發環境? – Throwback1986

+0

不太清楚'target'是什麼意思,但我在上面用新信息編輯過。 – de1337ed

+0

pxa270適用於目標:)你能發佈C文件的片段,還有更多的asm文件嗎? – Throwback1986

回答

3

我認爲你需要將指令從ARM彙編器轉換成GNU彙編器。如果我理解正確,則可以使用.global指令而不是.import來訪問任何全局符號。從Using as網頁:

。全球符號

。全球使符號LD可見。如果您在 部分程序中定義了符號,則其值會與其他鏈接的部分程序 一起使用。否則,符號從鏈接到同一個 程序的另一個文件中獲取同名 符號的屬性。

-1
.global 
.var 
.extern 
_Receive_ADC_Samples.end: 
+3

你可能會考慮加一點解釋:-) – kleopatra

+1

這可能是正確的答案......它看起來可能是?但是我不知道沒有一些解釋或參考資料什麼的。請回來,並擴大這個答案。 – DavidZemon

0
.extern (symbol) 

是你所需要的