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では関係ないのでそのままで良い。