IAR のアーム以外のエディションでこれがうまく機能するかどうかはわかりません。私たちのアプローチを共有できます。
スタートアップ ファイルでは、IAR がスタック使用量を測定するために使用するパターンで RAM の初期化を編集するだけです。
LDR R1, =__RAM_START
LDR R2, =__RAM_END
SUBS R2, R2, R1
SUBS R2, #1
BLE .LC5
MOVS R0, #0xCDCDCDCD ;; <- LOOK HERE!
MOVS R3, #4
.LC4:
STR R0, [R1]
ADD R1, R1, R3
SUBS R2, #4
BGE .LC4
次に、ノードのオプションで、linker->advanced で、Enable stack usage analysis をマークします。IDEオプションで、「グラフィカルスタックを有効にする」などを選択します。
ここで、デバッグ セッションで、[View] -> [Stack] を選択してスタックのグラフィック表示を有効にします。
このアプローチを使用すると、RAM 全体をダンプして、0xCDCD パターンがどこに残っているかを特定することもできます。
もう 1 つのアプローチは、uC の DWT または MPU を使用して、境界を越えるバス アクセスを監視し、例外をトリガーすることです。このアプローチを使用すると、スタックがオーバーフローしたときに誰が何をしていたかを正確に確認できます。
繰り返しますが、これは ARM に合わせたアプローチであり、これがあなたのシステムで機能するかどうかはわかりません。
韓国語