C
Espressifプラットフォームの始め方
概要
このトピックでは、Qt Quick UltraliteがサポートするEspressifプラットフォームでの開発を始めるために必要なすべての情報を提供します。
対応バージョン
Qt Quick ESP32プラットフォーム向けのUltraliteは、Espressif IoT Development Framework (ESP-IDF) バージョン5.3を使用してテストされています。
前提条件のインストール
ESP-IDF環境を準備する前に、必要なすべての前提条件がインストールされていることを確認してください。
Espressif ESP32-S3-BOX-3
- Qt Quick Ultralite 2.12.2
- Qt Quick Ultralite Espressif ESP32-S3-BOX-3 プラットフォームパッケージ
- Espressif ESP32-S3-BOX-3
- Espressif IoT 開発フレームワーク (ESP-IDF)
ビルド済みバイナリの書き込み
Qt for MCUs では、さまざまなデモやサンプルを示す、あらかじめビルド済みのバイナリがいくつか用意されています。これらを書き込むには、書き込み手順に従ってください。
環境の準備
ESP-IDFのセットアップ
Espressifの「Get Started」ガイドに従って、開発環境を設定してください。
環境のセットアップ
アプリケーションをビルドする前に、以下の環境変数を設定してください:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.2set QUL_ROOT=C:\Qt\QtMCUs\2.12.2アプリケーションの構築
Qt Quick Ultralite アプリケーションのエクスポート
qmlprojectexporter を使用してアプリケーションコードをエクスポートします:
$QUL_ROOT/bin/qmlprojectexporter \
/path/to/your/project.qmlproject \
--boarddefaults=$QUL_ROOT/platform/boards/espressif/esp32s3-box3-idf/cmake/BoardDefaults_16bpp.qmlprojectconfig \
--toolchain GNU \
--platform esp32s3-box3-idf \
--outdir /path/to/project_output_dir \
--project-type esp-idf \
--generate-entrypoint \
--platform-metadata $QUL_ROOT/platform/boards/espressif/esp32s3-box3-idf/esp32s3-box3-idf_16bpp_Linux_xtensagcc-metadata.json%QUL_ROOT%\bin\qmlprojectexporter ^
C:\path\to\your\project.qmlproject ^
--boarddefaults=%QUL_ROOT%\platform\boards\espressif\esp32s3-box3-idf\cmake\BoardDefaults_16bpp.qmlprojectconfig ^
--toolchain GNU ^
--platform esp32s3-box3-idf ^
--outdir C:\path\to\project_output_dir ^
--project-type esp-idf ^
--generate-entrypoint ^
--platform-metadata %QUL_ROOT%\platform\boards\espressif\esp32s3-box3-idf\esp32s3-box3-idf_16bpp_Windows_xtensagcc-metadata.json注:この エクスポートは、アプリケーションプロジェクトごとに1回だけ実行すれば十分です。CMakeはQMLファイルの変更を自動的に検出し、C++コードを再生成します。
Qt Quick のUltraliteアプリケーションで、異なるバリアント用のセレクタを使用している場合は、qmlprojectexporter に対して--selector 引数を指定してそれらを追加してください。たとえば、Qt Quick のUltraliteサーモスタットデモでは、以下のセレクタが使用されています:
--selector normal,smallEspressifプラットフォームのデフォルト設定では、MinSizeRel 構成でビルドされたQt Quick Ultraliteライブラリがエクスポートされます。別のビルド構成(Debug など)でQt Quick Ultraliteライブラリをビルドした場合は、qmlprojectexporter コマンドに--qul-build-type引数を追加して、ビルドタイプを上書きしてください:
--qul-build-type DebugQt Quick Ultraliteに同梱されているいくつかのサンプルでは、アプリケーションコード内にmain() 関数が含まれていません。main() 関数を追加する場合を除き、これらのサンプルをエクスポートする際には--generate-entrypoint引数を使用してください。Qt Quick Ultraliteを初期化するmain() 関数の記述に関する詳細については、「アプリケーションでのQt Quick Ultraliteの実行」を参照してください。
--include-metadata-extra-target 引数を使用してサンプルをエクスポートする場合は、--outdir がサンプルのソースディレクトリ内にないことを確認してください。
qmlprojectexporter 、QmlProject、および ESP-IDFプロジェクトの生成に関する詳細については、qmlprojectexporter のドキュメント、『QmlProject マニュアル』、および「Espressif IoT Development Framework (ESP-IDF) 用のプロジェクトの生成」を参照してください。
ESP-IDF プロジェクトの操作
エクスポートされたQt Quick UltraliteアプリケーションはESP-IDFプロジェクトであり、アプリケーションはその構成要素の一つです。プロジェクト構造の詳細およびその操作方法については、こちらをご覧ください。
注: バックエンドコードなど、「Qt Quick Ultralite」アプリケーションへのすべての 追加機能は、Qulコンポーネントに追加する必要があります。
ESP-IDFプロジェクトのビルド
- ESP-IDF環境を設定します:
. $HOME/esp/esp-idf/export.shESP-IDF コマンドプロンプトまたは ESP-IDF PowerShell 環境を起動します。
- アプリケーションをビルドしてフラッシュします:
cd /path/to/project_output_dir idf.py build idf.py flashcd C:\path\to\project_output_dir idf.py build idf.py flash
デバッグ
デバッグメッセージの読み取り
ESP-IDFには、デバッグメッセージを読み取るためのモニターツールが用意されています。以下のコマンドを使用して、このツールを起動してください:
idf.py monitor
デバッガの使用
ESP-IDFはアプリケーションのデバッグに対応しています。デバッガを起動するには、次のいずれかのコマンドを使用してください:
idf.py gdbコマンドプロンプトで GDB を実行します。idf.py gdbguiブラウザ上でGDBのグラフィカルUIを起動します。idf.py gdbtuiコマンドプロンプトで GDB のテキストユーザーインターフェースを実行します。idf.py openocdGDBから接続可能なデバッグサーバーを起動します。
ボード固有の情報
現在サポートされている Espressif ターゲットを以下に示します。Qt Quick Ultralite がサポートするすべてのターゲットの詳細については、「サポートされているターゲットボードおよび開発ホスト」を参照してください。
Tier 2: 検証済みターゲット
| ハードウェアボード | MCU / MPU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| Espressif ESP32-S3-BOX-3 | ESP32-S3 MCU | GNU Xtensa GCC 13.2.0 | FreeRTOS |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソースデータは起動時に SDRAM にコピーされます。これらのリソースをフラッシュメモリに保持し、起動時に RAM に読み込まないようにするには、qmlproject ファイルに次の QmlProject オプションを追加してください:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、次のように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}特定の Qt ライセンスの下で利用可能です。
詳細はこちら。