gpt4 book ai didi

c - 如何在 Greenhills 编译器的内联汇编中使用全局变量?

转载 作者:行者123 更新时间:2023-11-30 15:56:33 26 4
gpt4 key购买 nike

我想在内联汇编中使用全局变量。

asm(" LDR R0,g_TsInitStackPointerAddress");

这里g_TsInitStackPointerAddress是一个全局变量。编译时没有显示任何错误。

但是在链接时显示以下错误

[elxr] (error) out of range: 0x1001326 (unsigned) didn't fit in 12 bits while performing relocation type R_ARM_POOL (4) at address 0x10013e0 from InitStack+0x20 (drv.o(.text)+0x1a4), to g_TsInitStackPointerAddress+0x0 ((COMMON)+0xb6)

这里我的函数名称是InitStack,文件名称是drv。我无法理解该错误。

使用的处理器:Cortex R4
编译器:Greenhills

最佳答案

找到解决方案

__asm("g_TsInitStackPointerAddress_a: DCD g_TsInitStackPointerAddress ");

在该函数内给出此语句,然后它将在内联程序集中获取该变量

关于c - 如何在 Greenhills 编译器的内联汇编中使用全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com