首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Greenhills编译器的内联程序集中使用全局变量?

如何在Greenhills编译器的内联程序集中使用全局变量?
EN

Stack Overflow用户
提问于 2012-06-26 05:50:14
回答 1查看 2.2K关注 0票数 0

我想在内联程序集中使用全局变量。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-29 03:43:18

找到解决方案

__asm("g_TsInitStackPointerAddress_a: DCD g_TsInitStackPointerAddress ");

在该函数中给出以下语句,然后在内联程序集中接受该变量

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11201410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档