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.1
- Qt Quick Ultralite Espressif ESP32-S3-BOX-3プラットフォームパッケージ
- Espressif ESP32-S3-BOX-3
- エスプレシフIoT開発フレームワーク(ESP-IDF)
ビルド済みバイナリのフラッシュ
Qt for MCUs は、さまざまなデモやサンプルを示すビルド済みバイナリのセレクションを提供します。これらをフラッシュするには、フラッシュ手順に従ってください。
環境の準備
ESP-IDFのセットアップ
EspressifのGet Startedガイドに従って、開発環境をセットアップする。
環境のセットアップ
アプリケーションをビルドする前に、以下の環境変数を設定してください:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.1set QUL_ROOT=C:\Qt\QtMCUs\2.12.1アプリケーションの構築
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注意: このエクスポートは、アプリケーションプロジェクトごとに一度だけ必要です。CMake は自動的に QML ファイルの変更を検出し、C++ コードを再生成します。
Qt Quick Ultralite アプリケーションが異なるバリアント用のセレクタを使用する場合は、qmlprojectexporter の--selector 引数で追加してください。例えば、Qt Quick Ultralite Thermostat Demoは以下のセレクタを使用しています:
--selector normal,smallEspressifプラットフォームのデフォルト設定は、MinSizeRel 設定でビルドされたQt Quick Ultraliteライブラリをエクスポートすることです。Qt Quick Ultraliteライブラリを別のビルド構成(Debug など)でビルドした場合は、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 マニュアル、Generate projects for Espressif IoT Development Framework (ESP-IDF)を参照してください。
ESP-IDFプロジェクトでの作業
エクスポートされたQt Quick UltraliteアプリケーションはESP-IDFプロジェクトであり、アプリケーションはコンポーネントの1つです。プロジェクト構造の詳細と操作方法はこちらをご覧ください。
注: バックエンドコードなど、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でサポートされている全ターゲットの詳細については、サポートされているターゲットボードと開発ホストを参照してください。
階層 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"
}