我有一个链接器命令文件,它将堆栈的顶部地址分配给一个变量

_stack = . + 0x80000;

我想在“c”程序中使用这个地址-我想将堆栈复制到另一个位置,然后更新堆栈指针以指向新的位置,然后再对原始RAM库执行破坏性内存测试。
我发现如果我做类似的事情
extern u32 *_stack;
myFunction(_stack);

然后,函数似乎传递了存储在堆栈位置的值
lwz r3,0(r8)

而不是堆栈本身的地址。
有人能帮忙吗?

最佳答案

尝试

extern u32 _stack;
U32 * stackPtr;
stackPtr = &_stack;

关于c - 在“C”代码中使用链接器命令文件变量的绝对值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/187669/

10-10 03:37