我想在内联程序集中使用全局变量。
asm(“LDR R0,g_TsInitStackPointerAddress");
这里,g_TsInitStackPointerAddress是一个全局变量。在编译时没有显示任何错误。
但是,在链接时,它显示了以下错误
超出范围的elxr:0x1001326 (未签名)在地址0x10013e0执行R_ARM_POOL (4)从InitStack+0x20 (drv.o(.text)+0x1a4)到g_TsInitStackPointerAddress+0x0 (公共)+0xb6的重定位时不适合12位。
这里我的函数名是InitStack,文件名是drv。我无法理解这个错误。
处理器:皮质R4
编译器: Greenhills
发布于 2012-06-29 03:43:18
找到解决方案
__asm("g_TsInitStackPointerAddress_a: DCD g_TsInitStackPointerAddress ");
在该函数中给出以下语句,然后在内联程序集中接受该变量
https://stackoverflow.com/questions/11201410
复制相似问题