コラム

Column

ご挨拶

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」を組み込むための一連の手順とポイントを解説します。開発ホストは、Ubuntu 24.04 LTS を使用しました。

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_world/)をビルドします。

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: イメージの変換と書き込み

  1. MCUXpresso Secure Provisioning Tool を起動し、メニューの Target —> Connection... で正常に接続(Status が Failed でないこと)されていることを確認します。
  2. 画面上部のタブに従い、以下の順で操作を実行します。
    • Build image タブ: .elf ファイルを .bin 形式に変換
    • Write image タブ: ターゲットボードの QSPI Flash(または Micro SD)へ書き込み

Step 3: ブート設定の変更と動作確認

書き込み完了後、一度電源を OFF にし、ディップスイッチを起動モードへ切り替えます。

  1. ブートモードの設定:SW4[3:4] = 10 (Internal Boot) — Table 8 参照
  2. ブートデバイスの設定:SW4[1:2] = 00 (QSPI Flash) — Table 9. i.MX RT1060 boot device settings 参照
  3. 起動確認:電源を 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. アプリケーションのビルド手順

  1. QML コードの作成:Qt Design Studio を使用し、ボタンやメーターなどの GUI コンポーネントの配置および動作ロジックを設定して QML コードを生成します。
  2. Zephyr 用コードへの変換:qmlprojectexporter ツールを用いて、QML から Zephyr 向けのソースコードを生成します(※コマンド例は後述)。
  3. Zephyr アプリのビルド:west build を使用してサンプルプロジェクト(例: minimal)をビルドします。
  4. 書き込みと実行:生成された .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 をご参照ください。主な流れは以下の通りです。

  1. west.yml の編集: zephyrproject/zephyr/west.yml を変更します。
  2. ソースコードの配置: zephyrproject/modules/crypto/ 配下に wolfssl/ ディレクトリをコピーします。
  3. サンプルアプリケーションのビルド:以下のコマンドで wolfSSL のサンプル(例: TLS ソケット通信)をビルドします。

    Bash

    $ west build -p always -b mimxrt1060_evk/mimxrt1062/qspi ../modules/crypto/wolfssl/zephyr/samples/wolfssl_tls_sock
    

     

  4. 書き込みと実行:生成された .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 上でこれらを動作させる場合は、設定ファイル(CMakeLists.txt および prj.conf)の追加と Zephyr 用コードへの適正化が必要となります。

Qt for MCUs や wolfSSL の Zephyr 導入にあたっては、Zephyr のバージョンに依存したビルドエラーや機能設定など、いくつか注意すべきポイントが存在します。「手順通りに進めたがうまく動作しない」「具体的な設定ファイルを共有してほしい」といったご質問がございましたら、お気軽に当社までご相談ください。

なお、Qt for MCUs は、1か月の無償評価版を、wolfssl は、公開されている https://github.com/wolfSSL/wolfssl.git のソースコードを、使用しました。

POPULAR COLUMN
人気コラム



COLUMN
関連記事

CONTACT

まずはお気軽に
お問い合わせください!

トップへ戻る