目次

checkStackUsage

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

参考文献

Stack-checking a program that will execute in orbit
Measuring Stack Usage the Hard Way