0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP-IDFの「IDF_PATH」の設定で詰まった時のメモ

Posted at

VSCodeでESP-IDF拡張機能を使っていたときに、bashから idf.py を起動しようとすると「idf.pyが見つからない」と言われることがあったので、その時のメモです。

結論から言うと「VSCode拡張機能」では以下のように設定がされているが、コマンドラインから使用するときは自分でPATHを設定する必要があるようです。

image.png

では、Ubuntuの .bashrc になんて書けばいいのでしょうか?
直観的には .bashrc などに「IDF_PATH」を設定してあげて、そのパスの「export.sh」を呼び出して、諸々の設定をしてもらえばいいと思うのだが、単純に設定しただけでは駄目でした。
色々とググった結果、以下のようにしました。
(ESP-IDF は $HOME/esp/v5.4.1/esp-idf に入っている前提)

# esp-idf
export IDF_PATH="$HOME/esp/v5.4.1/esp-idf"
export IDF_PATH_FORCE=1
source $IDF_PATH/export.sh

「export IDF_PATH_FORCE=1」は、すでに IDF_PATH が設定されている環境でも、強制的にそのパスを使いたいときに使います。

ESP-IDF の export.sh は、デフォルトで「既に IDF_PATH が設定されている場合は、再設定しない」ようになっています。
これは複数バージョンの ESP-IDF を切り替えて使うときに便利ですが、逆に 古い設定が残っていると上書きされず、想定外のバージョンが使われてしまうことがあります。

IDF_PATH_FORCE=1 をセットすることで、意図したパスを確実に使えるようになります。

もし、複数ESP-IDF環境を持っていた場合

# v4.4.6, v5.4.1 の2つを持っていたとした例
$HOME/esp/
├── v4.4.6/
│   └── esp-idf/
├── v5.4.1/
│   └── esp-idf/

.bashrc に以下を追記して、

# ESP-IDF バージョン切り替え関数
idf_use() {
    local ver=$1
    export IDF_PATH="$HOME/esp/$ver/esp-idf"
    export IDF_PATH_FORCE=1
    source "$IDF_PATH/export.sh"
    echo "Switched to ESP-IDF $ver"
}

bash から以下のように呼び出すと、IDFのバージョンを切り替えて使用できます。

idf_use v5.4.1   # 5.4.1 に切り替え
idf_use v4.4.6   # 4.4.6 に切り替え

とりあえず、備忘録。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?