[英]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.