stack_startおよびstack_endシンボルの値を「C」関数で参照できる直接的な方法はありますか? アセンブラを少し使って各シンボルを読み取り、それを「使用済み」属性が与えられた変数に配置することで、これを行うことができます。例えば。
static __attribute__((used)) UI_32 StkStart;
__asm__
(
"LDR R0, =__stack_start__ \n"
"LDR R1, =StkStart\n"
"STMIA.W R1, {R0}\n"
);
ここでアセンバーの使用を避ける方法はありますか?
これを行う必要があるのは、スタック領域がスタートアップ モジュールの特定のパターンに初期化されているためです。使用されているスタックの量を判断するために、元のパターンへの変更をチェックするスタック メモリを確認できます。 .