目次

puncover

puncover - Analyses C/C++ build output for code size, static variables, and stack usage
Tools for Firmware Code Size Optimizationを読んでいて見つけたツール

インストール

pipでインストールする

pip install puncover

以下の内容はpipでインストール可能になる前の話なので不要
記事にあるようにそのままpipでインストールしても動作しない.
仮想環境を作ってその上で実行したほうが良い.
Windws用のパッチを当てることと,Flask,Jinja2のバージョン依存を修正する必要がある.
このissue(Windows compatibility (.exe ARM tools) #37)にあるファイル(fixWindowsPaths.patch.txt)を使ってGitでパッチを当てる.
2022年6月30日時点で,幸いにも7日前に来れに対応するPR(Support python3.10 #49)がある.
この2つを実行することで,puncoverがWindowsで動くようになる.

elfファイルの準備

.elfファイルに必要な情報が入っている必要がある。
-g-fdebug-prefix-map=/=フラグを追加してビルドする

参考文献

Optimization Tools¶ Zephyr docs
How to use puncover to estimate the maximum stack size of a thread