簡體   English   中英

如何在Greenhills編譯器的內聯匯編中使用全局變量?

[英]How to use global variable in Inline Assembly in Greenhills Compiler?

我想在內聯匯編中使用全局變量。

asm(“ LDR R0,g_TsInitStackPointerAddress”);

g_TsInitStackPointerAddress是一個全局變量。 在編譯時沒有顯示任何錯誤。

但是在鏈接時顯示以下錯誤

[elxr](錯誤)超出范圍:0x1001326(無符號)不適合12位,同時在從InitStack + 0x20(drv.o(.text)+ 0x1a4)到g_TsInitStackPointerAddress的地址0x10013e0執行重定位類型R_ARM_POOL(4) + 0x0((普通)+ 0xb6)

在這里,我的函數名稱是InitStack,文件名稱是drv。 我無法理解該錯誤。

使用的處理器:Cortex R4
編譯器:Greenhills

得到了解決方案

__asm(“ g_TsInitStackPointerAddress_a:DCD g_TsInitStackPointerAddress”);

在該函數中提供此語句,然后它將在內聯匯編中使用該變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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