ESP32: Visual Studio CodeでESP-IDFを使う(Linux編)



Windows編に引き続き、Linux編ですっ( `・ω・´) ほとんど手順は同じなので、ざっくり行きます!
元記事:https://github.com/espressif/esp-idf/issues/303

1. ESP-IDFのインストール

公式セットアップガイドを参考にインストールします。インストールしたら、.zshrcとか.cshrcとか.profileに、環境変数 IDF_PATH の設定を追加しておきます。

2. Visual Studio Codeのインストール

https://code.visualstudio.com/からインストールします!

3. C/C++ extensionのインストール

Windows編と同じです!(←それでいいのかー!

4. プロジェクトの設定

[ファイル]メニューの[フォルダーを開く]から、既存のESP-IDFのプロジェクトを開きます。開いたらCtrl+Shift+Pを押し、「edit」と入力すると出てくる「C/Cpp: Edit Configurations」を選択します。すると、「c_cpp_properties.json」が開かれるので、以下の内容に上書きします。[ユーザー名]のところだけ、適宜書き換えて下さい。

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceRoot}",
                "/home/[ユーザー名]/esp/esp-idf/components"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                "${workspaceRoot}",
                "/home/[ユーザー名]/esp/esp-idf/components"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            }
        }
    ]
}

続いて、もう一度Ctrl+Shift+Pを押し、「task」と入力すると出てくる「タスク:タスクランナーの構成」を選択し、更に「Others: 任意の外部コマンドを実行する例」を選択します。すると、「tasks.json」が開かれるので、以下の内容に上書きします。

{
    "version": "0.1.0",
    "command": "bash",
    "args": ["-c"],
    "isShellCommand": true,
    "showOutput": "always",
    "suppressTaskName": true,
    "options": {
        "cwd": "${workspaceRoot}"
    },
    "tasks": [
        {
            "taskName": "build app",
            "args": ["make app"],
            "isBuildCommand": true,
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "taskName": "clean app",
            "args": ["make app-clean"]
        },
        {
            "taskName": "flash app",
            "args": ["make app-flash"]
        },
        {
            "taskName": "monitor",
            "command": "gnome-terminal",
            "args": ["-e","make monitor"],
            "isShellCommand": false,
            "showOutput": "never"
        },
        {
            "taskName": "menuconfig",
            "command": "gnome-terminal",
            "args": ["-e","make menuconfig"],
            "isShellCommand": false,
            "showOutput": "never"
        }
    ]
}

なお、「gnome-terminal」はUbuntuのデフォルトのターミナルエミュレータですが、他のターミナルエミュレータをお使いの場合は、適宜書き換えてください。

5. ビルドと実行

[タスク]メニューの[タスクの実行]から、ビルド等を実行できます。
  • menuconfig: 別ウインドウが開いて、menuconfigできます。
  • build app: ビルドします。
  • flash app: ESP32に書き込みます。
  • monitor:別ウィンドウでモニターを起動します。
  • clean app:クリーンします。

4. おわりに

Windows編で力尽きて、手抜き感が・・・(/ω\)イヤン
といっても、menuconfigとmonitorに対応した以外は、ほとんど元記事のままだったので、あまり書くことも無くて(←言い訳

VSCodeはElectronで作られていることもあって、多言語化含め、Windows版と全く同じなんですねー。というか、Windows版を触った時、最初Atomかと思いました(゜◇゜)
なんにせよ、使えるIDEが増えたのは良いことだと思います!(*´▽`*)

コメント

このブログの人気の投稿

Arduinoでステレオ電子ボリューム(FM62429)

ESP32: Visual Studio CodeでESP-IDFを使う(Windows編)

PSoC5LP Prototyping Kitで作るUSBオーディオI/F(I2S出力対応)