2021/10/01(金)VSCodeでArduino開発するときのメモリ使用量の確認

VSCodeにArduino拡張を入れて開発するとき、本家IDEと違って、以下のようなメモリ使用量がでない。
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-size" -A "R:\\/test.ino.elf"
最大32256バイトのフラッシュメモリのうち、スケッチが20776バイト(64%)を使っています。
最大2048バイトのRAMのうち、グローバル変数が896バイト(43%)を使っていて、ローカル変数で1152バイト使うことができます。
そこで、VSCodeのtask.jsonを書いて同等の情報出力をファイルに出すようにした。手順は以下の通り。
  1. Ctrl+Shift+Pでコマンドパレットを開く
  2. コマンドパレットに"task"と打ったら「タスクの構成を開く」とあるのでそれを選択
  3. 次に「テンプレートからtask.jsonを生成」とあるのでそれを選択
  4. そして「Others」を選択するとtask.jsonファイルが生成される
以下の例に従って記述を変更する。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "メモリ状況",
            "type": "shell",
            "presentation": {"echo": true},
            "command": "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\bin\\avr-size.exe",
            "args": [">", "memory.txt", "-C", "--mcu=atmega328p", "R:\\test.ino.elf"]
        }
    ]
}

なお、ドライブレターやパス、ターゲットelfファイル名などすべてハードコーディングしているので適宜変更が必要。まずは動くことを重視した。task.jsonを保存したらメニューからターミナル->タスクの実行を選択すると「メモリ状況」という項目が増えているのでそれを選択して「タスクの出力をスキャンせずに続行」で実行する。
するとmemory.txtにFlashとSRAMの使用量が出力される。この処理はコンパイル直後に行う。