TOPICS

ESP-IDFのインストールプロセスとツールの改善

Espressifが提供する統合開発環境:『ESP-IDF』のご紹介です。


ESP32シリーズのチップのソフトウェア開発フレームワークであるESP-IDFは、2016年から活発に開発されています。当初はコマンドラインインターフェイス(CLI)の使用を念頭に置いて設計されました。過去数年間、ESP-IDFのインストールプロセスと使用法を簡素化するようお客様から多くの要望が寄せられました。この記事では、この分野における最近のいくつかの改善について説明します。

ビルドシステム

ESP-IDFが最初にリリースされたとき、そのコアにはGNUMakeに基づくビルドシステムがありました。ビルドシステムは非常に柔軟性があり、ESP-IDFコードベースを迅速に使用できました。当時ほとんどのEspressif開発者が使用していたオペレーティングシステムであるLinuxとmacOSで非常にうまく機能しました。ただし、ビルドシステムにはいくつかの問題がありました。主なものは、Windowsでは、GNUMakeがMSYSやCygwinのようなエミュレーションレイヤーを必要としたことでした。これは、同じハードウェアを搭載したLinuxでのプロジェクトビルドと比較して、Windowsでのプロジェクトビルドがはるかに遅いことを意味しました。もう1つの問題は、GNU Makeベースのプロジェクトを統合開発環境(IDE)に追加することを確実に行うことが難しいということでした。しばらくの間、ESP-IDFドキュメントには、GNUMakeビルドシステムでEclipseCDTを使用する方法が記載されていました。このアプローチは多くの場合機能しましたが、機能しなかった場合(ほとんどの場合、Windows)、トラブルシューティングは複雑でした。

これらの問題に対処するために、2018年にESP-IDFプロジェクトはCMakeに基づく新しいビルドシステムへの移行を開始しました。MakeとCMakeの間でESP-IDFの全体的な「ルックアンドフィール」を同じに保つように努めましたが、これは既存のプロジェクトに取り組んでいる多くのユーザーにとって依然として重要な変更でした。このため、新しいCMakeベースのビルドシステムの開発と並行して、Makeベースのビルドシステムを引き続きサポートすることにしました。ただし、2020年2月にリリースされたESP-IDF v4.0では、CMakeベースのビルドシステムがデフォルトのビルドシステムになり、Makeベースのビルドシステムは「レガシー」ステータスに降格されました。それ以来、ESP32-S2、ESP32-C3、ESP32-S3チップのサポートなどの新機能は、CMakeベースのビルドシステムにのみ追加されました。

CMakeビルドシステムは、IDEとのより良い統合の鍵でした。2019年に、Visual Studio(VS)CodeとEclipseの2つのIDE用のプラグインの開発を開始しました。これらのプラグインにより、ESP-IDFに固有の機能がIDEで直接利用できるようになり、ESP-IDFの使用を開始するプロセスが簡素化されました。

ツールとインストール

ESP-IDFは、クロスコンパイラツールチェーンやデバッグツールなど、ますます多くのツールに依存しています。これらのツールは、サポートされている各オペレーティングシステムのバイナリディストリビューションとしてEspressifによって提供されます。ESP-IDF v4.0より前は、ユーザーは正しいツールチェーンをダウンロードし、コンピューターのどこかに抽出してから、 PATH環境変数に追加する必要がありました。この基本的なアプローチにより、ユーザーは希望どおりに環境をセットアップできます。残念ながら、特にユーザーが異なるESP-IDFバージョンを切り替える必要がある場合は、エラーが発生しやすくなりました。ESP-IDF v4.0では、新しいスクリプトがSDKに追加され、ユーザーが正しいツールを自動的にセットアップできるようになりました。インストールアプローチは、複数のESP-IDFバージョンをコンピューターに並べてインストールできるように選択されました。

今年、ESP-IDFツールインストーラーをオーバーホールしたため、Windowsユーザーのインストールプロセスがさらに改善されました。ESP-IDFのインストールプロセスに関する問題レポートを分析し、このアップデートのエラーの主な原因に対処しました。まず、インストーラーはPythonインタープリターとGitバージョン管理システムのスタンドアロンコピーをセットアップできるようになりました。これにより、ESP-IDFはコンピューターにインストールされているものに依存しなくなります。次に、一部のパッケージが公式ソースから入手できない場合に備えて、インストーラーはPythonパッケージのフォールバックソース(「ホイール」)を使用します。第三に、インストーラーは前提条件の追加チェックを実行します。これは、ウイルス対策ソフトウェア、インストールディレクトリ、およびその他の一般的な問題の潜在的な問題を検出するのに役立ちます。インストーラーは、インストールプロセス中に必要なソフトウェアをダウンロードする最小限のインストーラーである「オンライン」と「オフライン」の2つのバリエーションで利用できるようになりました。

ESP-IDFツールとインストールに関する開発者のフィードバックに引き続き耳を傾け、この分野の改善に取り組んでいきます。

統合開発環境

コマンドラインインタフェースに加えて、EspressifはESP-IDFユーザーのための2つの開発環境を提供しています。ESP-IDFのためのVisual Studio(VS)符号拡張ESP-IDF Eclipseプラグイン。どちらの環境も2019年から活発に開発されています。今年は、IDE開発の取り組みを、インストールとオンボーディングプロセス、コア開発エクスペリエンス(プロジェクトの作成と構成、インデックス作成、フラッシュ、モニタリングなど)、JTAG関連の改善の3つの領域に集中させました。 。

Windows用のIDFツールインストーラーから学んだ教訓に基づいて、両方のIDEはオンボーディングプロセスの点で改善されています。Windowsユーザーは、オフラインバージョンのインストーラーからEclipseおよびIDFプラグインをセットアップすることもできるようになりました。VS Code拡張機能のオンボーディングプロセスが作り直され、わずか数ステップで完了できるようになりました。また、VS Code拡張機能とesp-idf.jsonの統合を実装し、Windows環境でのオンボーディングプロセスを可能な限り自動化するために、Python(Espressifのpipインデックスを使用)とgitをVSCode拡張機能に埋め込みました。 。

最新のESP32-S3およびESP32-C3チップにはUSB-JTAGインターフェイスが組み込まれているため、IDEのJTAG関連機能にいくつかの改善が加えられています。シリアルポートを介したフラッシュに加えて、JTAGを介したフラッシュのサポートが追加されました。IDF Eclipseプラグイン2.2.0およびOpenOCDプラグイン(v0.10.0-esp32-20201125以降)を使用すると、ユーザーはJTAGを介してアプリケーションを簡単に実行できます。これを行うには、ユーザーは起動構成でJTAGフラッシュオプションを選択し、適切なボードを選択するだけです。また、JTAGを介したアプリケーションのフラッシュがデフォルトのオプションになっているため、デバッグセッションに入る前にアプリケーションのフラッシュを忘れる可能性がなくなりました。ユーザーが必要なバージョンのOpenOCDをインストールしていない場合は、適切な情報をユーザーに警告します。

両方のIDEにはヒープトレース機能が付属しており、ユーザーはデバッグを介してsvdatダンプファイルを生成し(コードに開始/停止ブレークポイントを追加することにより)、その後ヒープダンプ分析を実行できます。これは、ヒープイベントとそのメモリ割り当てを分析したり、メモリリークの可能性を特定したりするのに非常に便利な機能です。

今後の計画

ESP-IDF開発者のエクスペリエンスを改善するための私たちの作業はこれだけではありません。既存のツールの改善に加えて、コンテナ化、オンラインコーディング、ワークスペースのプロトタイピングなどの新しいソリューションを研究しています。今後の開発の方向性をご案内しますので、皆様からのフィードバックをお待ちしております。ESP32フォーラム、またはESP-IDFIDF-Eclipse-pluginVSCode-ESP-IDF-extensionなどの特定のGitHubリポジトリを介してコメントを送信できます。

エスプレッシフ社ニュースリリース2021年8月27日より抜粋した内容を掲載しています。

詳細はお問い合わせください。

関連記事一覧

TOPICS