我想在内联汇编中使用全局变量。
asm(“LDR R0,g_TsInitStackPointerAddress”);
这里g_TsInitStackPointerAddress是一个全局变量。在编译时没有显示任何错误。
但是在链接时显示以下错误
[elxr](错误)超出范围:0x1001326(无符号)不适合12 在地址处执行重定位类型R_ARM_POOL(4)时的位 0x1613e0来自InitStack + 0x20(drv.o(。text)+ 0x1a4),来自 g_TsInitStackPointerAddress + 0x0((COMMON)+ 0xb6)
这里我的函数名是InitStack,文件名是drv。我无法理解错误。
使用的处理器:Cortex R4
编译:Greenhills
答案 0 :(得分:0)
获得解决方案
__ asm(“g_TsInitStackPointerAddress_a:DCD g_TsInitStackPointerAddress”);
在该函数中给出该语句,然后它将在内联汇编中使用该变量