NXP i.MX RT1060 で Qt for MCUs + wolfSSL + Zephyr を動作させる
NXP MIMXRT1060 における Zephyr 環境構築と Qt for MCUs / wolfSSL の動作手順
NXP MIMXRT1060(MIMXRT1060-EVK)上で RTOS「Zephyr」を動作させ、さらに GUI フレームワーク「Qt for MCUs」および暗号ライブラリ「wolfSSL」
1. Zephyr 環境構築
Zephyr の環境構築自体はハードウェアに依存しないため、
参考: 詳細な環境構築手順については、弊社コラム 「AMD™ 社製 KV260 で Zephyr® を動作させる:Linux 経由と直接起動の2手順を解説」 などを併せてご参照ください。
2. Zephyr アプリケーションのビルド
基本的なビルド手順は AMD KV260 と同様ですが、ターゲットボードの指定フラグ(-b)において mimxrt1060_evk/mimxrt1062/qspi を指定します。
Bash
west build -p always -b mimxrt1060_evk/mimxrt1062/qspi <path_to_app>
メモ:
-bの指定としてmimxrt1060_evk/mimxrt1062/も選択可能ですが、hyperflash 生成されるコードの配置アドレスには実質的な差はありません。
3. NXP MIMXRT1060 での Zephyr アプリケーション動作
3-1. アプリケーションのビルド
Zephyr の環境構築完了後、リポジトリに含まれる Hello World サンプル(zephyr/samples/hello_)をビルドします。
Bash
$ west -v build -p always -b mimxrt1060_evk/mimxrt1062/qspi <path_to_zephyr_code>/zephyr/ samples/hello_world
3-2. QSPI Flash への書き込みと実行
生成された .elf イメージを MCUXpresso Secure Provisioning Tool を使用して QSPI Flash(または Micro SD)へ書き込みます。
Step 1: 書き込み用のディップスイッチ設定
ボード(MIMXRT1060-EVKC)の SW4 を以下のように設定し、Serial Downloader モードに変更します。
- SW4[3:4] = 01 (
Serial Downloader)
参考規格書:
MIMXRT1060-EVKC Board User Manual (Rev. 2 — 8 November 2023)
Table 8. Boot mode pin settings 参照
Step 2: イメージの変換と書き込み
- MCUXpresso Secure Provisioning Tool を起動し、メニューの
Target—>Connection...で正常に接続(Status が Failed でないこと)されていることを確認します。 - 画面上部のタブに従い、以下の順で操作を実行します。
- Build image タブ:
.elfファイルを.bin形式に変換 - Write image タブ: ターゲットボードの QSPI Flash(または Micro SD)へ書き込み
- Build image タブ:
Step 3: ブート設定の変更と動作確認
書き込み完了後、一度電源を OFF にし、ディップスイッチを起動モードへ切り替えます。
- ブートモードの設定:SW4[3:4] = 10 (
Internal Boot) — Table 8 参照 - ブートデバイスの設定:SW4[1:2] = 00 (
QSPI Flash) — Table 9. i.MX RT1060 boot device settings 参照 - 起動確認:電源を ON にすると、シリアルコンソールに
Hello World !が表示されます。
4. Qt for MCUs を NXP MIMXRT1060 (Zephyr) で動作させる
4-1. Qt for MCUs の特長
- 豊富な機能群: GUI コンポーネントだけでなく、
Qt Network(TCP/IP Wrapper)なども標準提供。 - 高いセキュリティ対応: セキュリティ認証を意識した製品設計。
- 抜群の移植性: Linux や Windows だけでなく、Zephyr などの組み込み RTOS 向けにも対応。
- 製品ラインナップ: 通常の Qt に加え、OS(Linux/Windows)のない、メモリ容量や CPU 性能が限られた SoC 環境向けに最適化された Qt for MCUs が用意されています。
4-2. アプリケーションのビルド手順
- QML コードの作成:
Qt Design Studioを使用し、ボタンやメーターなどの GUI コンポーネントの配置および動作ロジックを設定して QML コードを生成します。 - Zephyr 用コードへの変換:
qmlprojectexporterツールを用いて、QML から Zephyr 向けのソースコードを生成します(※コマンド例は後述)。 - Zephyr アプリのビルド:
west buildを使用してサンプルプロジェクト(例:minimal)をビルドします。 - 書き込みと実行:生成された
.elfファイルを 3-2) の手順 と同様に QSPI Flash へ書き込んで動作させます。
qmlprojectexporter 実行例
Bash
$ $QUL_ROOT/bin/ qmlprojectexporter \
$HOME/Qt/QtMCUs/2.12.1/ examples/minimal/mcu_minimal. qmlproject \
--boarddefaults=$QUL_ROOT/ platform/boards/nxp/ mimxrt1060-evkb-zephyr/cmake/ BoardDefaults_16bpp. qmlprojectconfig \
--toolchain GNU \
--platform mimxrt1060-evkb-zephyr \
--outdir $HOME/workspace/minimal \
--project-type zephyr \
--generate-entrypoint \
--platform-metadata $QUL_ROOT/platform/boards/nxp/ mimxrt1060-evkb-zephyr/ mimxrt1060-evkb-zephyr_16bpp_ Linux_armgcc-metadata.json
# ライセンス確認ログ
[qmlprojectexporter] success: License reserved/renewed successfully mcu_qpe
[qmlprojectexporter] Reservation granted at 2026-03-23T06:24:53.114Z
[qmlprojectexporter] Reservation valid until 2026-04-02T23:59:59.999Z
5. wolfSSL を NXP MIMXRT1060 (Zephyr) で動作させる
5-1. wolfSSL の特長
- 高い安全性と品質: FIPS 140-3 認証取得済み、DO-178C 認証取得をサポート。十分にテストされた商用クオリティと最新 TLS に対応。
- 軽量・ハードウェアアクセラレーション: 小フットプリントでありながら、
ハードウェア暗号化機能をサポート。 - 優れた移植性: Linux / Windows に加え、Zephyr などの組み込み RTOS に対応。
- 耐量子計算機暗号(PQC)対応: 最新の Post-Quantum Cryptography に標準対応(※ OpenSSL では v3.5 以降で対応)。
5-2. アプリケーションのビルド手順
詳細な手順については wolfssl/zephyr/README.md をご参照ください。主な流れは以下の通りです。
west.ymlの編集:zephyrproject/zephyr/west.ymlを変更します。- ソースコードの配置:
zephyrproject/modules/crypto/配下にwolfssl/ディレクトリをコピーします。 - サンプルアプリケーションのビルド:以下のコマンドで wolfSSL のサンプル(例: TLS ソケット通信)をビルドします。
Bash
$ west build -p always -b mimxrt1060_evk/mimxrt1062/qspi ../modules/crypto/wolfssl/zephyr/samples/wolfssl_tls_ sock - 書き込みと実行:生成された
.elfファイルを 3-2) の手順 と同様に QSPI Flash へ書き込みます。
注意: Zephyr バージョン依存について
Zephyr のバージョンによってはソースコードの微修正が必要です。
例えば、wolfSSL 5.9.1 × Zephyr 4.3 の組み合わせでは、
modules/crypto/に以下のヘッダーインクルードを追加する必要がありました。wolfssl/wolfssl/test.h
C
#include <zephyr/posix/arpa/inet.h>※なお、Zephyr 4.1 でビルドする場合には上記のような変更は不要です。
5-3. 耐量子計算機暗号(PQC)の動作確認
wolfSSL リポジトリ内の以下のサンプルコードで PQC の動作検証が可能です。
wolfssl/examples/server/wolfssl/examples/client/
※ Zephyr 上でこれらを動作させる場合は、設定ファイル(CMakeLis および prj.conf)の追加と Zephyr 用コードへの適正化が必要となります。
Qt for MCUs や wolfSSL の Zephyr 導入にあたっては、Zephyr のバージョンに依存したビルドエラーや機能設定など、
なお、Qt for MCUs は、1か月の無償評価版を、wolfssl は、公開されている https://github.com/wolfSSL/wolfssl.git のソースコードを、使用しました。


