1

スタックのトップ アドレスを変数に割り当てるリンカー コマンド ファイルがあります。

_stack = . + 0x80000;  

このアドレスを 'c' プログラムで使用したい - スタックを別の場所にコピーしてから、元の RAM バンクで破壊的なメモリ テストを行う前にスタック ポインタを新しい場所を指すように更新したい。

私が何かをするなら、私はそれを見つけています

extern u32 *_stack;  
myFunction(_stack);

次に、スタックの場所に格納されている値が関数に渡されるようです

lwz r3,0(r8)

スタック自体のアドレスではなく。誰でも助けることができますか?

4

3 に答える 3

5

試す

extern u32 _stack;
U32 * stackPtr;
stackPtr = &_stack;
于 2008-10-09T15:11:45.363 に答える
1

これを宣言する最も自然な [つまり、正しい] 方法は、スタックをメモリ内の配列として考え、スタック ポインターをその配列内の場所として考えることに基づいていると思います。

extern U32 _stack[];
U32 *stackPtr;
stackPtr = _stack;
于 2008-10-11T15:48:46.820 に答える
0

myFunction(&_stack); myFunction に変数 * _stack* のアドレスを渡す必要があります。それ以外の場合は、変数_stackに含まれる値を渡します。

于 2008-10-09T15:10:52.183 に答える