https://github.com/ttsiodras/checkStackUsage
arm-none-eabiのツールチェインで使うためにこの修正を適用しておく
各関数のスタックの最大使用量を求めるスクリプト
調査したいプログラムのオプションに-fstack-usageフラグを追加してビルドし.elfと.suファイルを用意する。
requirements.txtがあるのでpipコマンドを使えば楽
pip install -r requirements.txt
第一引数:.elfファイルへのパス
第二引数:.suファイルの存在するディレクトリ
WorkSpace └─Project ├─build # <- suファイルがあるディレクトリとして指定 │ ├─main.o │ ├─main.d │ ├─main.su │ ├─file1.o │ ├─file1.d │ ├─file1.su │ ├─Project.elf # <- elfファイル │ ├─Project.lst │ ├─Project.map │ └─Project.bin ├─checkStackUsage # <- ここで下のコマンドを実行する想定 │ ├─checkStackUsage.py │ ├─Makefile │ └─requirements.txt └─src
python checkStackUsage.py ../build/Project.elf ../build
-cross PREFIXというのが出てくるが、arm用GCCでは関係ないのでそのままで良い。