FRDM-IMX93のスタート・ガイド

最終更新日時: 2024-11-29 11:56:00サポート FRDM i.MX 93

1. パッケージの内容

次のセクションでは、FRDM-IMX93をブートする手順について説明します。

開発キットの内容:

  • NXPのWi-Fi 6トライラジオIW612に基づくオンボードu-blox MAYA-W27xを搭載したFRDM-IMX93ボード
  • ケーブル:アセンブリ、USB 2.0、Type-Cオス - Type-Aオス
  • ソフトウェア:eMMCにプログラムされたLinux BSPイメージ
  • クイック・スタート・ガイド

パッケージ内容の説明ビデオを見て、FRDM-IMX93でのアプリケーションの開発を始めましょう。詳細については、i.MX 93アプリケーション・プロセッサのドキュメントをご覧ください。

1.1 ボードの概要

FRDM IMX93 Front

FRDM IMX93 Front

FRDM IMX93 Back

FRDM IMX93 Back

1.2 eMMCからのブート

FRDM-IMX93では、ビルド済みのNXP Linuxバイナリ・デモ・イメージがeMMCに書き込まれています。内部のバイナリを変更することなく、eMMCからのブートにより、Linux上で他のアプリケーションをビルドするための特定の機能を備えたデフォルトのシステムが提供されます。

NXPの組込みLinux®の詳細については、次のセクションを参照してください。

1.3 USBデバッグ・ケーブルの接続

付属のUSB Type-Cケーブルをデバッグ用UARTポートP16に接続し、ケーブルのもう一方の端をホスト・コンピュータに接続します。

2つのUART接続がホスト・コンピュータに表示されます。最初のポートがCortex-A55コア用、2番目のポートがCortex-M33コアのシステム・デバッグ用です。

ターミナル・アプリケーションに慣れていない場合は、ステップ1.4に進む前に、Linuxのデバッグ・ターミナルまたはWindowsのデバッグ・ターミナルのいずれかのチュートリアルを参照してください。

Linuxでデバッグする場合は、CH342F Linuxドライバ がインストールされていることを確認してください。

1.4 HDMIケーブルの接続

イメージ・バイナリに付属のユーザー・インターフェースを使用するには、HDMIコネクタ (P5) を使用してモニタを接続します。

1.5 ブート・スイッチの設定

次の表に従って設定してください。

GS-FRDM-IMX93-IMG4

1.6 電源の接続

電源ケーブルを電源コネクタ (P1) に接続します。

ボードは、デフォルトではeMMCからブートするように設定されています。プロセッサはeMMCからのブータブル・イメージの実行を開始します。その後、U-Bootの実行が自動的に開始されます。

Arm® Cortex®-A55のシリアル・コンソールに情報が表示されます。U-Bootプロセスを停止しない場合は、引き続きカーネルのブートが実行されます。

ボードが起動すると、モニタの左上隅に2羽のペンギンが表示され、左上にLinuxターミナルのアイコン、右上にタイマが表示されます。

これで準備が完了しました。

1.7 Wi-Fi、Bluetooth、および802.15.4ドライバ・モジュールのロード

FRDM-IMX93にログインするには、i.MX Linux OSのデフォルトのログイン・ユーザー名として「root」を使用します。パスワードはありません。以下のコマンドを使用して、カーネルにWi-FiとBluetoothモジュールをロードします。

root@imx93frdm:~# modprobe moal mod_para=nxp/wifi_mod_para.conf
root@imx93frdm:~# ifconfig mlan0 up
root@imx93frdm:~# modprobe btnxpuart
root@imx93frdm:~# hciconfig hci0 reset 

詳細については、FRDM-IMX93コネクティビティ・トレーニング をご覧ください。

2. ソフトウェアの入手

i.MX Linuxボード・サポート・パッケージ (BSP) は、特定のi.MX開発プラットフォームで組込みLinuxイメージをブートするために使用されるバイナリ・ファイル、ソース・コード、およびサポート・ファイルの集まりです。

Linuxバイナリ・デモ・ファイルの最新のリリースは、FRDM i.MX 93開発ボードにあります。その他のドキュメントは、i.MXソフトウェアおよび開発ツールのLinuxセクションにあるi.MX Linuxドキュメント・バンドルで入手できます。

2.1 概要

FRDM-IMX93は、eMMCおよびSDカードからのブートをサポートしています。

このスタート・ガイドでは、Linux BSPイメージをSDカードに書き込むいくつかの方法の概要を説明します。経験豊富なLinux開発者は、必要に応じて他のオプションを検討することができます。

2.2 NXP Linux BSPのビルド済みイメージのダウンロード

FRDM i.MX 93開発ボードには、FRDM-IMX93用の最新のビルド済みイメージが用意されています。

ビルド済みのNXP Linuxバイナリ・デモ・イメージは、プロセッサの使用および評価のための標準的なシステムと基本的な機能のセットを提供します。システムを変更する必要なしに、ユーザーはハードウェアのインターフェースを評価し、SoC機能をテストし、ユーザー空間のアプリケーションを実行できます。

2.3 Universal Update Utility (UUU) を使用したNXP Linux BSPイメージの書き込み

「パッケージの内容」セクションでの接続に加えて、適切なUSBケーブルを使用してUSB1 (P2) をホスト・マシンに接続します。

電源アダプタを抜きます。「1.5 ブート・スイッチの設定」セクションを参照し、シリアル・ダウンロード・プロトコル (SDP) モードでブートするようにボードを設定します。

ホスト・マシンで使用されているOSに応じて、Linux BSPイメージをSDカードに転送する方法は異なります。詳細な手順については、以下のオプションを選択してください。

2.4 オプション:Linuxでの開発を簡素化するためにCommon Torizonを使用する

Torizonは、使いやすい産業用Linuxプラットフォームであり、Linuxデバイスの開発と保守を簡素化します。FRDM-IMX93は、Common Torizonオペレーティング・システムによってサポートされています。このOSは、オープンソースの必要最小限の組込みLinuxイメージであり、最適なコンテナ・ランタイムのほか、オフラインおよびリモートのセキュアなOTA (Over-the-Air) アップデート、デバイス・モニタリング、リモート・アクセスのための各種コンポーネント、その他の不可欠なサービスを備えています。

Common Torizonバイナリ イメージをダウンロードします。

Yocto を使用して、Common Torizonをソースからビルドします。Yoctoレイヤをダウンロードし、ビルドのセットアップを実行して、ビルド・プロセスを開始することができます。

Common TorizonをFRDM-IMX93にフラッシュします。フラッシュ手順の詳細 を参照してください。

フラッシュした後、以下の資格情報を使用してターミナルからログインできるようになります。

  • ユーザー:torizon
  • パスワード:torizon

この後、パスワードを作成するよう求められます。

いくつかのデモ・アプリケーションを評価するために、Torizon Cloud を使用することができます。そのためには、Torizon Cloudのアカウントを作成し、アカウントにデバイスをプロビジョニングする必要があります。

これを簡単に行う方法については、次のセクションを確認してください。

2.5 オプション:Torizon Cloudの使用を開始する

FRDM-iMX93へのCommon Torizonのフラッシュが成功したら、Torizon Cloudの使用を開始することができます。これにより、OSとアプリケーションの両方のセキュアなリモート・オンライン/オフライン・アップデート、リモート・デバイス・モニタリング、リモート・アクセス、フリート管理、脆弱性モニタリングなどが可能になります。

Torizon の詳細については、Torizonのドキュメント を参照してくだ さい。

Torizon Cloudの使用を開始するには、アカウント を作成し、Common Torizonを使用するFRDM-IMX93をアカウントに追加する必要があります。

ステップ・バイ・ステップ・ガイド に従ってください。

Torizonに関するご質問については、Toradexコミュニティ または電子メール でお気軽にお問い合わせください。

3. ビルドと実行

このセクションでは、FRDM-IMX93用Yocto BSPイメージをビルドする方法に加えて、Matterのサポートを追加する方法、およびDebianのリリース・イメージをビルドする方法の概要を説明します

3.1 FRDM-IMX93用Yocto BSP

FRDM-IMX93 BSPリリースは、Yocto Project 5.0 (Scarthgap) を使用したi.MX SW 2024 Q3リリースがベースとなっています。ソース・コードからFRDM-IMX93イメージをビルドするには、まずi.MX Yoctoプロジェクトのユーザー・ガイドをお読みになり、YoctoプロジェクトとYoctoのビルドについて理解してください。その後、以下の手順に従ってFRDM-IMX93用のイメージをビルドしてください。

  1. i.MX SW 2024 Q3 BSPリリースのダウンロード:
  2. $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml 
    $ repo sync 
  3. Yoctoコード・ベースへのFRDM-MX93レイヤの統合:
    $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
  4. Yocto Projectの設定:
    $ MACHINE=imx93frdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx93
  5. イメージのビルド:
    $ bitbake imx-image-full
  6. SDカードのイメージの書き込み:
    $ zstdcat imx-image-full-imx93frdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && sync

    または、uuuを使用してSDカードにイメージを書き込む場合:

    $ uuu -b sd_all imx-image-full-imx93frdm.rootfs.wic.zst
  7. ブート・スイッチSW1を「0011」に切り替えてSDカードのブートを選択したら、SDカードを挿入してFRDM-IMX93ボードの電源を入れます。

3.2 FRDM-IMX93でのMatterのサポート

FRDM-IMX93はMatterをサポートしています。Matterのサポートを追加するには、以下の手順に従ってYoctoのビルドにMatterのレイヤを含めてください。

  1. i.MX SW 2024 Q3 BSPリリースのダウンロード:
  2. $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
    $ repo sync 
  3. i.MX Matter Yoctoレイヤのダウンロード:
    $ cd ${MY_YOCTO}/sources/meta-nxp-connectivity
    $ git remote update
    $ git checkout imx_matter_2024_q3
  4. Yoctoコード・ベースへのFRDM-MX93レイヤの統合:
    $ cd ${MY_YOCTO}/sources
    $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
  5. Yocto Projectの設定:
    $ MACHINE=imx93frdm-iwxxx-matter DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-matter-setup.sh bld-xwayland-imx93
  6. イメージのビルド:
  7. $ bitbake imx-image-multimedia

3.3 FRDM-IMX93でのDebian

FRDM-IMX93はDebian 12 OSをサポートしています。i.MX Debian Linux SDKディストリビューションでは、NXPが提供するカーネルおよびブート・ローダとDebianディストリビューションのユーザー空間イメージが組み合わされており、これには以下のものが含まれています。

  • Debianに基づくrootfs
    1. Debianベース(基本パッケージ)
    2. Debianサーバ(GUIデスクトップを含まない、より多くのパッケージ)
    3. Debianデスクトップ(GNOME GUIデスクトップを含む)
  • Linuxカーネル
  • BSPコンポーネント
  • 各種アプリケーション(グラフィックス、マルチメディア、ネットワーク、コネクティビティ、セキュリティ、AI/ML)

NXPのDebian Linux SDKディストリビューションの詳細については、NXPのi.MXおよびLayerscape用Debian Linux SDKディストリビューションを参照してください。

Debianでのクイック・スタート

DebianでFRDM-IMX93用にSDカードを作成するには、以下の手順に従ってください。

  1. Linuxホストにflexインストーラをダウンロードします
  2. $ wget http://www.nxp.com/lgfiles/sdk/lsdk2412/flex-installer
    $ chmod +x flex-installer
    $ sudo mv flex-installer /usr/bin
  3. LinuxホストにSDカードを差し込み、以下のとおりにイメージをインストールします
  4. # format SD card
    $ flex-installer -i pf -d /dev/sdb
    # automatically download and install images into SD card
    $ flex-installer -i auto -d /dev/mmcblk1 -m imx93frdm
  5. FRDM-IMX93ボードにSDカードを差し込み、以下のとおりに追加パッケージをインストールします
    1. イーサネット・ネットワーク・インターフェースをDHCPで設定するか、手動で設定します
    2. $ dhclient -i end0
    3. 例えば以下のように、正確なシステム時刻を設定します
    4. $ date -s "22 Nov 2024 09:00:00"
    5. GNOME GUIデスクトップ・バージョン用の追加パッケージをインストールします
    6. $ debian-post-install-pkg desktop
    7. または、GUIデスクトップを含まないサーバ・バージョン用の追加パッケージをインストールします
    8. $ debian-post-install-pkg server
    9. インストールが完了したら、rebootコマンドを実行してDebianデスクトップまたはサーバ・システムを起動します

Flexbuildを使用したDebianイメージのビルド

Flexbuildを使用してFRDM-IMX93用のDebianイメージをビルドするには、以下の手順に従ってください。

  1. ビルド環境の設定
    $ git clone https://github.com/nxp/flexbuild
    $ cd flexbuild && source setup.env
    #Continue to run commands below in case you need to build in Docker due to lack of Ubuntu 22.04 or Debian 12 host
    $ bld docker
    $ source setup.env
  2. Flexbuildを使用したイメージのビルド
    $ bld -m imx93frdm
  3. Flexbuildの使用:

    イメージの個々の部分をビルドするには、Flexbuildを使用するための以下のコマンド・リストを確認してください

    $ bld uboot -m imx93frdm (compile u-boot image for imx93frdm)
    $ bld linux (compile linux kernel for all arm64 i.MX machines)
    $ bld bsp -m imx93frdm (generate BSP firmware)
    $ bld boot (generate boot partition tarball including kernel, dtb, modules, distro bootscript for iMX machines)
    $ bld multimedia (build multimedia components for i.MX platforms)
    $ bld rfs -r debian:server (generate Debian server rootfs)
    $ bld apps -r debian:server (compile apps against runtime dependencies of Debian server RootFS)
    $ bld merge-apps -r debian:server (merge iMX-specific apps into target Debian server RootFS)
    $ bld packrfs -r debian:server (pack and compress target debian server rootfs)

4. 開発者エクスペリエンス

FRDM-IMX93には、あらゆるスキル・レベルのユーザーが開発を加速できるように、FRDM-IMX93のさまざまな機能や能力に基づく広範なサンプル・アプリケーションが備わっています。これには特に、FRDM-IMX93に搭載されたニューラル・プロセッシング・ユニット (NPU) によって高速化される、機械学習関連のユース・ケースが含まれます。

現時点では、FRDM-IMX93では以下の9つのサンプル・アプリケーションが提供されています。

  • 画像分類
  • 物体検出
  • 自撮り画像のセグメンテーション
  • i.MXスマート・フィットネス
  • DMS(ドライバー監視システム)
  • MLベンチマーク・ツール
  • ビデオ・テスト・ツール
  • i.MXスマート・キッチン
  • i.MX EバイクVIT

サポートされているサンプル・アプリケーションの詳細については、アプリケーション・コード・ハブ (ACH) およびGoPointをご覧ください。

4.1 アプリケーション・コード・ハブ

アプリケーション・コード・ハブ (ACH) リポジトリでは、NXPの社内エキスパートが開発したマイクロコントローラおよびプロセッサのソフトウェア・サンプル、コード・スニペット、アプリケーション・ソフトウェア・パック、デモなどを簡単に見つけることができます。このスペースでは、マイクロコントローラおよびプロセッサのアプリケーションをすばやく簡単に一貫した方法で検索できます。

ACHには、特定のアプリケーションをすばやく見つけるためのフィルタと検索のオプションがあります。Git機能のサポートにより、ユーザーの開発環境でアプリケーションを簡単にインポートして使用できます。

アプリケーション・コード・ハブ (ACH) の詳細については、こちらのリンクをご覧ください。

利用可能なFRDM-IMX93向けアプリケーション・サンプルを見つけるには、下図に示すように、デバイス・ファミリで「i.MX」を選択してください。

GS-FRDM-IMX93-IMG5

それぞれのアプリケーション・サンプルを選択して、詳細を確認してください。

GS-FRDM-IMX93-IMG6

各サンプル・アプリケーションのソース・コードを取得するには、画面上部の[Visit on GitHub(GitHubにアクセス)]ボタンをクリックして、NXP GitHubのコード・リポジトリにアクセスします。

GS-FRDM-IMX93-IMG7

4.2 I.MXアプリケーション・プロセッサ用GoPoint

i.MXアプリケーション・プロセッサ用GoPointは、Linux BSPに含まれているビルド済みアプリケーションを起動するためのユーザー・フレンドリーなアプリケーションで、i.MX SoCのさまざまな機能をすばやく実際に体験してみることができます。GoPointは、高度な機能に加え、GitHubで提供されているアプリケーション用のソース・コードとビルド・レシピを使用して、実装のための実用的なソリューションを提供します。

GoPointの詳細については、こちらのリンクをご覧ください。

FRDM-IMX93の場合、GoPointはデフォルトでBSPリリースに含まれています。GoPoint GUIランチャーを開くには、FRDM-IMX93が起動した後、以下に示すように画面の左上隅に表示されるNXPロゴをクリックします。

GS-FRDM-IMX93-IMG8

利用可能なサンプル・アプリケーションは、各アプリケーションのスクリーンショットのアイコンとともに表示されています。サンプル・アプリケーションを選択すると、右側にそのサンプル・アプリケーションの簡単な説明が表示されます。選択されているアプリケーションを起動するには、[Launch Demo(デモを起動)]ボタンをクリックします。アプリケーションの起動後は、ランチャーに表示される[Stop Current Demo(現在のデモを停止)]ボタンをクリックすることで、デモを強制終了できます 。

各アプリケーションの使用方法の詳細については、i.MXアプリケーション・プロセッサ向けGoPointのユーザー・ガイドを参照してください。

GS-FRDM-IMX93-IMG9

Linuxのデバッグ・ターミナル

シリアル通信コンソールの設定

Serial-to-USBドライバは、CH342F Linuxドライバ から入手できます。

Linuxホスト・マシンのコマンド・プロンプトで、次のコマンドを実行してポート番号を確認します。

ls /dev/ttyCH343USB*

最初の番号はArm® Cortex®-A55用です。

Minicom

次のコマンドを使用して、Minicomプログラムをインストールし、実行します。

  1. Ubuntuパッケージ・マネージャを使用してMinicomをインストールします
  2. sudo apt-get install minicom
  3. 事前に確認したポート番号を使用して、コンソール・ウィンドウでMinicomを起動します
  4. sudo minicom /dev/ttyCH343USB * -s
GS-FRDM-IMX93-IMG3

図に示すようにMinicomを設定し、設定を終了します。

Windowsのデバッグ・ターミナル

シリアル通信コンソールの設定

FRDM-IMX93のWCH USBシリアル・チップは、2つのシリアル・ポートを列挙します。ポートがCOM11COM12であるとします。最初のポート (COM11) はArm® Cortex®-A55からのシリアル・コンソール通信用です。Serial-to-USBドライバは、CH342F Windowsドライバ から入手できます。

Tera Term

Tera Termは、オープン・ソースのターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。

  1. Tera Termをダウンロードします。ダウンロードしたら、インストーラを実行し、このウェブページに戻って手順を続行します
  2. TeraTermを起動します。初めて起動する際には、次のダイアログが表示されます。[Serial(シリアル)]オプションを選択します。ボードが接続されている場合は、COMポートが自動的にリスト内に表示されます
  3. 事前に確認したCOMポート番号を使用して、シリアル・ポートをボーレート115,200、8データ・ビット、パリティなし、1ストップ・ビットに設定します。この設定は[Setup(セットアップ)]→[Serial Port(シリアル・ポート)]から行うことができます
  4. 接続が確立されているか検証します

PuTTY

PuTTYは、広く利用されているターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。

  1. PuTTYをダウンロードします。ダウンロードしたら、インストーラを実行し、このウェブページに戻って手順を続行します
  2. 選択したダウンロードのタイプに応じて、ダウンロードした実行ファイルをダブルクリックするか、[Start(スタート)]メニューから選択して、PuTTYを起動します
  3. 起動後に表示されるウィンドウで設定を行います。[Serial(シリアル)]ラジオ・ボタンを選択し、事前に確認したCOMポート番号を入力します。ボーレートもあわせて指定します。今回は115,200を入力します
  4. [Open(開く)]をクリックして、シリアル接続を確立します。ボードが接続されていて、正しいCOMポートが入力されていれば、ターミナル・ウィンドウが開きます。設定が正しくない場合は、アラートが表示されます

Cortex M-33イネーブルメント

FRDM-IMX93には、リアルタイムかつ低消費電力のプロセッシングに使用できる、最大250 MHzで動作する汎用Arm®Cortex®-M33が1つ搭載されています。このセクションでは、Cortex-M33コア用のプログラムのビルド、実行、デバッグの方法を示します。

SDKのダウンロード

Cortex-M33 MCUXpresso SDKは、MCUXpresso Web Builderツール で配布されています。MCUXpresso SDKには、組込みアプリケーションの開発を加速および簡素化するように設計された柔軟なペリフェラル・ドライバ・セットが含まれています。MCUXpresso SDKは、ペリフェラル・ドライバに加えて、基本的なペリフェラルの使用例からデモ・アプリケーションまでをカバーする豊富なサンプル・アプリケーションのセットを提供します。MCUXpresso SDKには、FreeRTOSやAzure RTOSなどのRTOS統合オプションや、デバイスでの迅速な開発をサポートするデバイス・スタックも含まれています。

FRDM-IMX93用のMCUXpresso SDKを入手するには、以下の手順に従ってください。

  1. MCUXpresso SDK Builderにアクセスします
  2. [Select Development Board(開発ボードの選択)]をクリックします
  3. GS-FRDM-IMX93-IMG11
  4. 「MIMX9352xxxxM」を検索し、選択します
  5. GS-FRDM-IMX93-IMG12
  6. SDKリリース・バージョン2.16を選択し、[BUILD SDK(SDKのビルド)]ボタンをクリックします
  7. GS-FRDM-IMX93-IMG13
  8. SDKに含めるホストOS、ツールチェーン、ミドルウェアを選択して、[BUILD SDK(SDKのビルド)]ボタンをクリックします
  9. GS-FRDM-IMX93-IMG14
  10. SDKのビルドが完了したら、[Dashboard(ダッシュボード)]ページの[Download(ダウンロード)]をクリックします
  11. GS-FRDM-IMX93-IMG15
  12. SDKをドキュメントとともにダウンロードします
  13. GS-FRDM-IMX93-IMG16
  14. SDKパッケージをダウンロードしたら、パッケージを解凍します。Cortex M33 MCUXpresso SDKの詳細については、ドキュメント・フォルダにあるリリース・ノートやドキュメント「Getting Started with MCUXpresso SDK for MCIMX93-EVK.pdf」を確認してください

Cortex-M33プログラムのビルド

ツールチェーンのセットアップ方法やCortex-M33プログラムのビルド方法については、SDKパッケージのドキュメント・フォルダにあるドキュメント「Getting Started with MCUXpresso SDK for MCIMX93-EVK.pdf」を参照してください。

Cortex-M33プログラムの実行

コンパイル済みプログラムをCortex-M33で実行するには、U-Boot bootauxとLinux remoteprocの2つの方法があります。bootauxまたはremoteprocを使用してCortex-M33コアを起動した後は、デバッグの目的でのみ、remoteprocを使用してCortex-M33コアを停止できます。本番環境のシステムでLinux OSからCortex-M33コアを停止することは推奨されません。

Cortex-M33コアを起動する前に、デバッグ・ターミナルでCortex-M33コアのUARTデバッグ・ポートが開いていることを確認してください。

  1. U-Bootのbootauxを使用する

    このサンプルでは、最初にU-BootのSDカードのパーティション1からCortex-M33プログラムをロードします。次に、bootauxコマンドによりCortex-M33コアを起動します。最後に、ブート・コマンドによりCortex-A55コアでLinuxを起動します。Cortex-M33プログラムのバイナリがFATパーティション形式でSDカードのパーティション1に保存されていることを確認してください。このサンプルでは、バイナリ・ファイル「imx93-11x11-evk_m33_TCM_power_mode_switch.bin」を例として使用します。

    ボードの電源を投入したら、Cortex-A55のデバッグ・ターミナルで任意のキーを押してU-Bootを起動します。次に、以下のコマンドを使用してCortex-M33コアを起動します。

    u-boot=> fatload mmc 1:1 ${loadaddr} imx93-11x11-evk_m33_TCM_power_mode_switch.bin
    19080 bytes read in 6 ms (3 MiB/s)
    u-boot=> cp.b ${loadaddr} 0x201e0000 ${filesize}
    u-boot=> bootaux 0x1ffe0000 0
    ## Starting auxiliary core addr = 0x1FFE0000...
    u-boot=> setenv mmcargs 'setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot} clk_ignore_unused'
    u-boot=> run prepare_mcore
    u-boot=> boot

    このバイナリ・ファイルを使用してCortex-M33コアが正常に起動した場合、以下のログがCortex-M33のデバッグ・ターミナルに出力されます。

    GS-FRDM-IMX93-IMG17
  2. Linuxのremoteprocを使用する

    この例では、LinuxのrootfsからCortex-M33プログラムをロードし、remoteprocで起動します。ここでは、バイナリ・ファイル「imx93-11x11-evk_m33_TCM_power_mode_switch.elf」を例として使用します。

    u-boot=> run prepare_mcore 
    u-boot=> boot 

    Linuxが起動したら、Cortex-A55のデバッグ・ターミナルで以下のコマンドを使用して、Cortex-M33コアを起動します。

    root@imx93frdm:~# echo /lib/firmware/imx93-11x11-evk_m33_TCM_power_mode_switch.elf > /sys/class/remoteproc/remoteproc0/firmware
    root@imx93frdm:~# echo start > /sys/class/remoteproc/remoteproc0/state

    このバイナリ・ファイルを使用してCortex-M33コアが正常に起動した場合、以下のログがCortex-M33のデバッグ・ターミナルに出力されます。

    GS-FRDM-IMX93-IMG17

デバッグの方法

アプリケーション・ノートAN14120「i.MX 8M、i.MX 8ULP、およびi.MX 93でのVS Codeを使用したCortex-Mのデバッグ」を参照してください。

NPUへのMLモデルの実装

NPUへのMLモデルの実装

FRDM-IMX93には、ニューラル・ネットワーク機械学習の推論を高速化するEthos-U65 NPUが搭載されています。このNPUは1 GHzで動作し、0.5 Topsの演算能力(256 MAC/サイクル)を実現します。Ethos-U65のハードウェアおよびソフトウェア・アーキテクチャの詳細については、i.MX機械学習ユーザー・ガイドを参照してください。

モデルの量子化

Ethos-U65 NPUでの高速化を実現するには、ニューラル・ネットワークの演算子を8 ビット(符号なし/符号付き)または16 ビット(符号付き)に量子化する必要があります。モデルの量子化については、最新のeIQツールキットをダウンロードし、ユーザー・ガイドを確認してください。

Velaでのコンパイル

量子化されたニューラル・ネットワーク (NN) モデルをEthos-U65に実装するには、最初の手順として、準備済みのモデルをVelaを使用してコンパイルします。Velaツールは、TensorFlow LiteのNNモデルを、Arm Ethos-U NPUを搭載した組込みシステムで実行できるよう最適化されたバージョンへとコンパイルするために使用されます。最適化されたモデルには、モデルの一部分をEthos-U NPUで高速化できるTFLiteカスタム演算子が含まれています。高速化できない部分は変更されず、適切なカーネルを使用してCPU(Cortex-AまたはCortex-M)で実行されます。最適化されたモデルは、コンパイル後はEthos-U NPU組込みシステムでのみ実行できます。このツールは、コンパイルされたモデルのパフォーマンス予測も生成します。

FRDM-IMX93は、Velaによるターゲットでのコンパイルとオフラインでのコンパイルをサポートしています。Velaによるターゲットでのコンパイルについては、VelaコンパイラがデフォルトでLinux BSPにインストール済みです。開発者は、Linux BSPを搭載したFRDM-IMX93で以下のコマンドをそのまま使用して、Velaによるターゲットでのコンパイルを実行できます。

root@imx93frdm:~# vela YOUR_MODEL_NAME.tflite 

正常に実行されると、Velaでコンパイルされたモデル「YOUR_MODEL_NAME_vela.tflite」が出力フォルダに生成されます。

Velaによるオフラインでのコンパイルについては、最新のeIQツールキットをダウンロードし、ユーザー・ガイドを確認してください。

モデル推論

VelaでコンパイルされたモデルのNPUでのパフォーマンスを評価するには、Linux BSPのbenchmark_modelツールを使用するのが最も簡単な方法です。このツールは、入力としてランダム・データを使用し、指定された実行回数の平均推論時間を提供します。以下に例を示します。

root@imx93frdm:~# /usr/bin/tensorflow-lite-2.16.2/examples/benchmark_model --graph=/root/mobilenet_v1_1.0_224_quant_vela.tflite --external_delegate_path=/usr/lib/libethosu_delegate.so 

正常に実行されると、デバッグ・ターミナルに以下のログが出力されます。

GS-FRDM-IMX93-IMG18

benchmark_modelツールは、コマンドに「--enable_op_profiling=true」を設定することで、演算子のプロファイリング・レポートも提供できます。benchmark_modelの詳しい使い方については、--helpを使用してご確認ください。

NPUでモデル推論を実行するためのコードをc++およびpythonで記述する方法については、GoPointのアプリケーション・サンプルを参照してください。

PyTorchモデルの実装

Tensorflowのほかに、PyTorchもNNモデルを構築するための人気の高いディープ・ラーニング・フレームワークです。しかし、VelaツールはTensorFlow Lite NNモデルのコンパイルのみをサポートしています。PyTorchモデルをTensorFlow Liteモデルに変換する方法については、アプリケーション・ノートAN13769「ONNXを使用してPyTorchモデルをNXPがサポートする推論エンジンに実装する」を参照してください。

グラフィックス

グラフィックス

FRDM-IMX93には、グラフィックス・バッファやコンポジット・ビデオ/グラフィックス・データをLCDディスプレイやTVエンコーダに送信する前に処理できる、ピクセル・プロセッシング・パイプライン (PXP) モジュールが搭載されています。これは、ディスプレイ・パイプラインに必要なメモリ・フットプリントを最小限に抑え、SDRAMなしとSRAMベースの両方のシステム向けに最適化された実装面積と性能を実現するために使用されています。PXPは、単一の処理エンジンにスケーリング、色空間の変換、回転処理を兼ね備えています。

PXPおよびその使用方法の詳細については、アプリケーション・ノートAN13829「GStreamerおよびWaylandでPXPを使用する方法」を参照してください。

セキュリティと整合性

セキュリティと整合性

システムのセキュリティと整合性は常に、製品開発において考慮すべき最も重要な側面の1つです。

FRDM-IMX93は、セキュア・ブート機能と暗号化されたブート機能をサポートし、デバイスのブート・シーケンス中の不正なソフトウェアの実行を防止し、ブートローダのデータを不正アクセスから保護します。

セキュア・ブート機能の詳細については、アプリケーション・ノートAN12312「AHAB対応デバイスのセキュア・ブート」を確認してください。

暗号化されたブート機能の詳細については、アプリケーション・ノートAN13994「AHAB対応デバイスのi.MX暗号化ブート」を確認してください。

高速ブート

高速ブート

特定のユース・ケースでは、デバイスのブート時間の要件があります。これは、デバイスのブートを所定の時間内に完了させる必要があることを意味します。

ブート時間を最適化するために、FRDM-IMX93はU-BootのFalconモードをサポートしています。FalconモードはU-Bootの機能で、SPLがLinuxカーネルを直接起動できるようにすることで高速ブートを可能にします。U-Bootのローディングと初期化を完全にスキップし、ブートローダで費やされる時間を短縮する効果があります。

Falconモードを有効にしてブート時間を最適化する方法については、AN14093「Falconモードとカーネル最適化を使用したi.MX 8Mおよびi.MX 9での高速ブート」を参照してください。