お客様の素早い設計とより早い製品化を実現する、技術情報と専門知識をご紹介します。
1
パッケージの内容2
ソフトウェアの入手3
ビルドと実行4
開発者エクスペリエンス次のセクションでは、FRDM-IMX95をブートする手順について説明します。
開発キットの内容:
パッケージ内容の説明ビデオを見て、FRDM-IMX95でのアプリケーションの開発を始めましょう。詳細については、i.MX 95アプリケーション・プロセッサのドキュメントをご覧ください。
Something went wrong! Please try again.
FRDM-IMX95では、ビルド済みのNXP Linuxバイナリ・デモ・イメージがeMMCに書き込まれています。内部のバイナリを変更することなく、eMMCからのブートにより、Linux上で他のアプリケーションをビルドするための特定の機能を備えたデフォルトのシステムが提供されます。
NXPの組込みLinux®の詳細については、次のセクションを参照してください。
Something went wrong! Please try again.
付属のUSB Type-C - Type-Aケーブルをデバッグ用ポートJ1に接続し、ケーブルのもう一方の端をホスト・コンピュータに接続します。
4つのUART接続がホスト・コンピュータに表示されます。1つはArm® Cortex®-A55用、1つはArm Cortex-M33コア用、1つはArm Cortex-M7コアのシステム・デバッグ用です。
ターミナル・アプリケーションに慣れていない場合は、ステップ1.4に進む前に、デバッグ・ターミナルの設定のセクションを参照してください。
Linuxでデバッグする場合は、CH344 Linuxドライバ がインストールされていることを確認してください。
Something went wrong! Please try again.
SW1 [1-2] はブート設定用スイッチです。デフォルトでは、ブート・デバイスはeMMC/uSDHC1です。
| ブート・デバイス | BOOT_MODE3 | BOOT_MODE2 | BOOT_MODE1 SW1-1 |
BOOT_MODE0 SW1-2 |
|---|---|---|---|---|
| シリアル・ダウンローダ | x | 0 | 0 | 1 |
| USDHC1 8ビットeMMC 5.1 | x | 0 | 1 | 0 |
| USDHC2 4ビットSD3.0 | x | 0 | 1 | 1 |
Something went wrong! Please try again.
イメージ・バイナリに付属のユーザー・インターフェースを使用するには、HDMIコネクタJ17を使用してモニタを接続します。
Something went wrong! Please try again.
USBケーブル(Type-Cオス - Type-Cオス)を使用してUSB PDアダプタを電源コネクタJ25に接続し、スイッチSW5をオンにしてボードの電源を入れます。
プロセッサはeMMCからのブータブル・イメージの実行を開始します。その後、U-Bootの実行が自動的に開始されます。
Arm® Cortex®-A55のシリアル・コンソールに情報が表示されます。U-Bootプロセスを停止しない場合は、引き続きカーネルのブートが実行されます。
ボードが起動すると、モニタの左上隅にペンギンが表示され、左上にLinuxターミナルのアイコン、右上にタイマが表示されます。これで準備が完了しました。
Something went wrong! Please try again.
i.MX Linuxボード・サポート・パッケージ (BSP) は、特定のi.MX開発プラットフォームで組込みLinuxイメージをブートするために使用されるバイナリ・ファイル、ソース・コード、およびサポート・ファイルの集まりです。
Linuxバイナリ・デモ・ファイルの現在のリリースは、Linuxダウンロード・ページにあります。その他のドキュメントは、i.MXソフトウェアおよび開発ツールのLinuxセクションにあるi.MX Linuxドキュメント・バンドルで入手できます。
FRDM-IMX95は、eMMCおよびSDカードからのブートをサポートしています。
このスタート・ガイドでは、Linux BSPイメージをSDカードに転送するいくつかの方法の概要を説明します。経験豊富なLinux開発者は、必要に応じて他のオプションを検討することができます。
Something went wrong! Please try again.
FRDM-IMX95用の最新のビルド済みイメージは、Linuxのダウンロード・ページでLinuxの最新バージョンの項目から入手できます。
ビルド済みのNXP Linuxバイナリ・デモ・イメージは、プロセッサの使用および評価のための標準的なシステムと基本的な機能のセットを提供します。システムを変更する必要なしに、ユーザーはハードウェアのインターフェースを評価し、SoC機能をテストし、ユーザー空間のアプリケーションを実行できます。
Something went wrong! Please try again.
パッケージの内容セクションでの接続に加えて、適切なUSBケーブルを使用してUSB1 J3をホスト・マシンに接続します。
ボードの電源を切ります。「1.4 ブート・スイッチの設定」セクションを参照し、シリアル・ダウンロード・プロトコル (SDP) モードでブートするようにボードを設定します。
ホスト・マシンで使用されているOSに応じて、Linux BSPイメージをSDカードに転送する方法は異なります。詳細な手順については、以下のオプションを選択してください。
UUU GitHubのページ から最新の安定ファイルをダウンロードします。UUUについてさらにサポートが必要な場合は、この広範なチュートリアル を参照してください。
uuulibusb1(apt-getまたは他のパッケージ・マネージャ経由)デフォルトでは、イメージがSDカードに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページ を参照してください。
ターミナル・アプリケーションを開き、FRDM-IMX95用の最新のLinuxディストリビューションとuuuが格納されている場所にディレクトリを変更します。uuuファイルに実行権限を追加し、ファイルを実行します。uuuはUSBデバイスが接続されるまで待機します。
$ chmod a+x uuu
$ sudo ./uuu -b sd_all imx-boot-imx95-15x15-lpddr4x-frdm-sd.bin-flash_all imx-image-full-imx95evk.wicFRDM-IMX95のブート・モードがシリアル・ダウンロード・モードに切り替わっていることを確認します。ボードの電源を入れると、uuuはボードへのイメージの書き込みを開始します。
完了したら、ボードの電源を切り、ターミナルを閉じます。SDカードからブートするためのボードの設定についてさらにサポートが必要な場合は、「1.4 ブート・スイッチの設定」セクションを参照してください。
UUU GitHubのページから最新の安定ファイルをダウンロードします。UUUについてさらにサポートが必要な場合は、この広範なチュートリアル を参照してください。
uuu.exeデフォルトでは、イメージがSDカードに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページ を参照してください。
コマンド・プロンプト・アプリケーションを開き、uuu.exeファイルとFRDM-IMX95用のLinuxリリースが格納されているディレクトリに移動します。
.\uuu.exe -b sd_all imx-boot-imx95-15x15-lpddr4x-frdm-sd.bin-flash_all imx-image-full-imx95evk.wicFRDM-IMX95のブート・モードがシリアル・ダウンロード・モードに切り替わっていることを確認します。ボードの電源を入れると、uuuはボードへのイメージの書き込みを開始します。
完了したら、ボードの電源を切り、ターミナルを閉じます。SDカードからブートするためのボードの設定についてさらにサポートが必要な場合は、「1.4 ブート・スイッチの設定」セクションを参照してください。
Something went wrong! Please try again.
このセクションでは、FRDM-IMX95用のYocto BSPイメージをビルドする方法について簡単に説明します。
FRDM-IMX95 BSPリリースは、i.MXファミリ用Linux BSPリリースとともに四半期ごとにリリースされます。ソース・コードからFRDM-IMX95イメージをビルドするには、まずi.MX Yoctoプロジェクトのユーザー・ガイドをお読みになり、YoctoプロジェクトとYoctoのビルドについて理解してください。その後、以下の手順に従ってFRDM-IMX95用のイメージをビルドしてください。ここでは、例としてLF6.12.49_2.2.0 BSPを使用します。
1. 最新のi.MXファミリ用Linux BSPリリースをダウンロード:
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml
$ repo sync2. Yoctoプロジェクトのセットアップ:
$ MACHINE=imx95-15x15-lpddr4x-frdm DISTRO=fsl-imx-xwayland source imx-setup-release.sh -b frdm-imx953. イメージのビルド:
$ bitbake imx-image-full4. SDカードのイメージの書き込み:
$ zstdcat imx-image-full-imx95-15x15-lpddr4x-frdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && syncまたは、uuuを使用してSDカードにイメージを書き込む場合:
$ uuu -b sd_all imx-image-full-imx95-15x15-lpddr4x-frdm.rootfs.wic.zst5. ブート・スイッチSW1[1:2]を「11」に切り替えてSDカードからのブートを選択したら、SDカードを挿入してFRDM-IMX95ボードの電源を入れます。
Something went wrong! Please try again.
NXPでは、あらゆるスキル・レベルのユーザーが開発を迅速化できるように、プラットフォームのさまざまな特長や機能に基づく広範なサンプル・アプリケーションを提供しています。
アプリケーション・コード・ハブ (ACH) リポジトリでは、NXPの社内エキスパートが開発したマイクロコントローラおよびプロセッサのソフトウェア・サンプル、コード・スニペット、アプリケーション・ソフトウェア・パック、デモなどを簡単に見つけることができます。このスペースでは、マイクロコントローラおよびプロセッサのアプリケーションをすばやく簡単に一貫した方法で検索できます。
ACHには、特定のアプリケーションをすばやく見つけるためのフィルタと検索のオプションがあります。Git機能のサポートにより、ユーザーの開発環境でアプリケーションを簡単にインポートして使用できます。
ACHの詳細については、こちらのリンクをご覧ください。
利用可能なFRDM-IMX95向けアプリケーション・サンプルを見つけるには、下図に示すように、デバイス・ファミリで「i.MX」を選択してください。
それぞれのアプリケーション・サンプルを選択して、詳細を確認してください。
各サンプル・アプリケーションのソース・コードを取得するには、画面上部の[Visit on GitHub(GitHubにアクセス)]ボタンをクリックして、NXP GitHubのコード・リポジトリにアクセスします。
Something went wrong! Please try again.
i.MXアプリケーション・プロセッサ用GoPointは、Linux BSPに含まれているビルド済みアプリケーションを起動するためのユーザー・フレンドリーなアプリケーションで、i.MX SoCのさまざまな機能をすばやく実際に体験してみることができます。GoPointは、高度な機能に加え、GitHub で提供されているアプリケーション用のソース・コードとビルド・レシピを使用して、実装のための実用的なソリューションを提供します。
GoPointの詳細については、こちらのリンクをご覧ください。
FRDM-IMX95の場合、GoPointはデフォルトでBSPリリースに含まれています。GoPoint GUIランチャーを開くには、FRDM-IMX95が起動した後、以下に示すように画面の左上隅に表示される[GoPoint]をクリックします。
利用可能なサンプル・アプリケーションは、各アプリケーションのスクリーンショットのアイコンとともに表示されています。サンプル・アプリケーションを選択すると、右側にそのサンプル・アプリケーションの簡単な説明が表示されます。選択されているアプリケーションを起動するには、[Launch Demo(デモを起動)]ボタンをクリックします。
アプリケーションの起動後は、ランチャーに表示される[Stop Current Demo(現在のデモを停止)]ボタンをクリックすることで、デモを強制終了できます 。
各アプリケーションの使用方法の詳細については、i.MXアプリケーション・プロセッサ向けGoPointのユーザー・ガイドを参照してください。
Something went wrong! Please try again.
Linux用USBシリアル・ドライバは、CH344 Linuxドライバ から入手できます。
Linuxホスト・マシンのコマンド・プロンプトで、次のコマンドを実行してポート番号を確認します。
ls /dev/ttyCH343USB*ポートのうち1つはArm® Cortex®-M7用、1つはArm® Cortex®-A55用、1つはArm® Cortex®-M33用です。
次のコマンドを使用して、Minicomプログラムをインストールし、実行します。
$ sudo apt-get install minicom$ sudo minicom /dev/ttyCH343USB * -s
図に示すようにMinicomを設定し、設定を終了します。
FRDM-IMX95のWCH USBコンバータ・チップは、4つのシリアル・ポートを列挙します。ポートのうち1つはArm® Cortex®-M7からのシリアル・コンソール通信用、1つはArm® Cortex®-A55用、1つはArm® Cortex®-M33用です。USBシリアル・ドライバは、CH344 Windowsドライバ から入手できます。
注:i.MXボードの仮想COMポートのポート番号を確認するには、Windowsのデバイス・マネージャを開き、[ポート (COMとLPT)]でUSBシリアル・ポートを探します
Tera Termは、オープン・ソースのターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。
PuTTYは、広く利用されているターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。
FRDM-IMX95には、リアルタイムかつ低消費電力のプロセッシングに使用できる、最大800 MHzで動作する汎用Arm® Cortex®-M7が1つ搭載されています。Cortex-M7コア上でプログラムをビルドして実行する方法については、アプリケーション・ノートAN14748「i.MX 95のM7コアでアプリケーションを実行する方法」を参照してください。
Cortex-M7コアで実行されるプログラムのデバッグ方法については、アプリケーション・ノートAN14120「i.MX 8M、i.MX 8ULP、およびi.MX 9でのVS Codeを使用したCortex-Mのデバッグ」を参照してください。
注:Yoctoビルドには、rootfs /lib/firmware/フォルダに、迅速な評価と検証のための複数のCortex-M7サンプル・イメージが既に含まれています。
FRDM-IMX95は、ニューラル・ネットワークの機械学習推論を高速化するために、最大2TOPSで動作するニューラル・プロセッシング・ユニット (NPU) を搭載しています。NPUのハードウェア・アーキテクチャの詳細については、i.MX 95アプリケーション・プロセッサ・リファレンス・マニュアルを参照してください。NPUのソフトウェア・アーキテクチャの詳細については、i.MX機械学習ユーザー・ガイドを参照してください。
NPUでの高速化を実現するには、ニューラル・ネットワークの演算子を8 ビット(符号なし/符号付き)に量子化する必要があります。モデルの量子化については、最新のeIQツールキットをダウンロードし、ユーザー・ガイドを確認してください。
NPUでの高速化を実現するには、量子化されたモデルをNeutronコンバータ・ツールを使用して変換する必要があります。最新のNeutronコンバータ・ツールは、eIQツールキットのページからダウンロードできるeIQ Neutron SDKに含まれています。i.MX95のモデルを変換するには、eIQ Neutron SDKのユーザー・ガイドに従ってください。
NNモデルのNPUでのパフォーマンスを評価するには、Linux BSPのbenchmark_modelツールを使用するのが最も簡単な方法です。このツールは、入力としてランダム・データを使用し、指定された実行回数の平均推論時間を提供します。以下に例を示します。
root@imx95frdm:~# /usr/bin/tensorflow-lite-2.19.0/examples/benchmark_model --graph=/usr/bin/tensorflow-lite-2.19.0/examples/mobilenet_v1_1.0_224_quant_converted.tflite $ --external_delegate_path=/usr/lib/libneutron_delegate.soNPUでモデル推論を実行するためのコードをc++およびpythonで記述する方法については、GoPoint のアプリケーション・サンプルを参照してください。
FRDM-IMX95には、SM (System Manager) の実行専用に、最大333 MHzで動作するArm® Cortex®-M33が1つ搭載されています。SMはNXPが提供するアプリケーションで、SoC内の他のプロセッサ用に低レベルのリソースを管理することを目的としています。
Cortex-M33はブート・コアとしてブートROMを実行し、SM(およびその他のブート・コード)がロードされた後はSMに分岐します。次に、SMは分離メカニズムなどいくつかのハードウェア機能を設定してから、システム内の他のコアを起動します。これらのコアを起動した後はサービス・モードに入り、Armのシステム制御および管理インターフェース(System Control and Management Interface:SCMI) に基づくクライアントRPC APIを介して、クロック、電源、センサ、およびピン制御にアクセスできるようになります。コア間の分離を容易にするために、SMはSoCを複数の論理マシン (LM) へと分割します。各LMは、ハードウェアとRPC API呼び出しの両方に対して、静的に設定可能なアクセス権を持ちます。
SMはGitHub imx-sm リポジトリ内にソース形式で提供され、お客様はニーズに合わせてコードを自由に変更および再コンパイルできます。ただし、SMの機能を拡張するために変更を加える場合は、その対象をお客様のボード層に限定することを推奨します。SMの機能を拡張する場合は、アプリケーション・ノートAN14478「ボード制御によるi.MX 9 System Manager機能の拡張」を参照してください。
FRDM-IMX95は、H.264、H.265 4Kp30のデコードをサポートするデコーダとH.264、H.265 4Kp30のエンコードをサポートするエンコーダを含むビデオ処理ユニット (VPU) を備えています。
VPUをテストする最も簡単な方法は、次のコマンドを使用してMP4ビデオ・ファイルを再生することです。
root@imx95frdm:~# gplay-1.0 MP4_EXAMPLE_FILE.mp4gplay-1.0は、VPUを自動的にビデオ・デコーダとして選択し、WestonデスクトップでMP4ファイルを再生します。接続されている場合は、HDMIディスプレイでビデオを再生できます。
アプリケーションでVPU APIを使用する方法の詳細については、i.MX VPU APIリファレンス・マニュアルをご覧ください。
FRDM-IMX95は、500 Mpixel/s MIPI-CSIおよびISP(4レーン x 2、2.5 Gbps/レーン)、PHY内蔵(DSIとのmux x 1)のカメラインターフェイスを備え、最大4Kp60fps x 1、4Kp30 x 2、1080p60 x 4、または1080p30 x 8の MIPI仮想チャネル対応カメラをサポートします。
ISPをテストするには、FRDM-IMX95でEXPI-S08A20カメラを使用できます。
注:ボードの電源を入れる前に、EXPI-OS08A20カメラがFRDM-IMX95のMIPI_CSIポートに接続されていることを確認してください。次に、「imx95-15x15-frdm-os08a20-isp.dtb」を使用してLinux OSをブートします。
u-boot=> setenv fdtfile imx95-15x15-frdm-os08a20-isp.dtb
u-boot=> bootOS08A20カメラを接続した状態でFRDM-IMX95がブートされたら、次のコマンドを実行して環境を設定し、OS08A20のカメラ・プレビューを開きます。
root@imx95frdm:~# export LIBCAMERA_IPA_MODULE_PATH=/usr/lib/libcamera/ipa
root@imx95frdm:~# export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo,uvc'
root@imx95frdm:~# export LIBCAMERA_IPA_CONFIG_PATH=/usr/share/libcamera/ipa
root@imx95frdm:~# export CAMERA0="/base/soc/bus@42000000/i2c@42540000/os08a20_mipi@36"
root@imx95frdm:~# gst-launch-1.0 libcamerasrc camera-name="${CAMERA0}" ! video/x-raw, width=3840, height=2160, format=YUY2 ! queue ! waylandsinkHDMIディスプレイにカメラのプレビューとして正しい映像が表示されれば、ISPは正常に動作しています。
ISPの使用の詳細については、i.MX 95カメラ移植ガイドを参照してください。
FRDM-IMX95は、最大60 GFLOPS(高精度)で動作するMali-G310グラフィックス・プロセッシング・ユニット (GPU) を備えており、OpenGL ES 3.2、OpenCL 3.0、Vulkan 1.2をサポートしています。
GPUのパフォーマンスをテストする最も簡単な方法は、次のコマンドでglmark2-es2-waylandベンチマークを実行することです。
root@imx95frdm:~# glmark2-es2-wayland --fullscreenこの他にも、FRDM-IMX95のデフォルトのrootfsにインストールされている多くのGPUサンプル・アプリケーションが/opt/imx-gpu-sdk/フォルダにあります。バイナリを直接実行するか、GoPointからアプリケーションを起動して試すことができます。
GPUの使用の詳細については、i.MXグラフィックス・ユーザー・ガイドをご覧ください。
特定のユース・ケースでは、デバイスのブート時間の要件があります。これは、デバイスのブートを所定の時間内に完了させる必要があることを意味します。
ブート時間を最適化するために、FRDM-IMX95はU-BootのFalconモードをサポートしています。FalconモードはU-Bootの機能で、SPLがLinuxカーネルを直接起動できるようにすることで高速ブートを可能にします。U-Bootのロードと初期化を完全にスキップし、ブートローダで費やされる時間を短縮する効果があります。
Falconモードを有効にしてブート時間を最適化する方法については、アプリケーション・ノートAN14093「Falconモードとカーネル最適化を使用したi.MX 8Mおよびi.MX 9での高速ブート」を参照してください。