Arduinoで作ったスケッチのメモリ使用量を確認する

   

Arduino IDEの設定とコマンドで、ビルドしたスケッチのメモリ使用量の確認ができます。

メモリ使用量確認の準備

Arduino IDEの環境設定を変更します。

  1. Arduino IDEのメニュー[ファイル]-[環境設定]をクリック
  2. 「環境設定」ダイアログの[設定]タブにある「より詳細な情報を表示する」の「コンパイル」のチェックボックスをONにします。
  3. [OK]ボタンを押し、「環境設定」ダイアログを閉じます。
  4. 対象のスケッチをビルドします。

※この設定は、スケッチのメモリ使用量チェックでも使います。

ビルドが終わると、終了部分はこのような画面になります。

arduino%e3%83%93%e3%83%ab%e3%83%89%e7%b5%90%e6%9e%9c

この表示に出ている「最大32,256バイトのフラッシュメモリのうち、スケッチが1,236バイト(3%)を使っています。」という部分がフラッシュメモリの使用量です。

 

スケッチのメモリ使用量チェック

スケッチのメモリ使用量チェックは、フラッシュメモリの使用量よりちょっと面倒です。

まず必要な作業は、

  1. 上記の環境設定を行う
  2. 調べたいスケッチのビルドを行い、ビルド結果が表示された状態にする。

です。

ビルド結果のうち、赤の四角で囲った行の中に、拡張子が”.elf”のファイルをフルパスで指定している箇所があります。

arduino%e3%83%93%e3%83%ab%e3%83%89%e7%b5%90%e6%9e%9c_%e8%aa%ac%e6%98%8e

横長の行なので、横スクロールで探すことになります。
(この画面でも、「最大○○バイトのRAMのうち・・・」という行で概算は表示されています)
elfファイルは、バイナリファイルなので情報を取得するためにコマンド(avr-objdump)を使用します。
Windowsの場合、avr-objdumpコマンドは、「<Arduino IDEをインストールしたパス>\hardware\tools\avr\bin\」にあります。

avr-objdumpコマンドのヘルプ

elfファイルを、avr-objdumpコマンドにかけます。

ちょっと長めですが、コマンドは下記のような感じ(ユーザー名部分を変えていますので、コピペでは使えません)です。

avr-objdumpコマンドの’-h’オプションを使用します。

実行した結果は、こんな感じで表示されます。

 

 - 未分類