お客様の素早い設計とより早い製品化を実現する、技術情報と専門知識をご紹介します。
1
パッケージの内容2
ビルドと実行3
ソフトウェアの入手4
MCUXpresso SDK次のセクションでは、i.MX 8QuadXPlus MEKをブートする手順について説明します。
開発キットの内容:
Something went wrong! Please try again.
Something went wrong! Please try again.
キットには、NXP Linuxのビルド済みバイナリ・デモ・イメージを格納したSDカードが含まれています。SDカード内部のバイナリを変更することなく、このSDカードからのブートにより、Linux上で他のアプリケーションをビルドするための特定の機能を備えたデフォルトのシステムが提供されます。このソフトウェアについては、次のセクションに記載されています。
Something went wrong! Please try again.
付属のUSBケーブルのmicro B側をデバッグUARTポートJ11
に接続します。ケーブルのもう一方の端をホスト・コンピュータに接続します。
ターミナル・アプリケーションの使用方法がわからない場合は、ホスト・マシンのオペレーティング・システムに応じて、次のいずれかのチュートリアルを試してください。
Something went wrong! Please try again.
電源ケーブルを電源コネクタ (J9
) に接続します。
プロセッサがオンチップROMコードから実行を開始します。デフォルトのブート・スイッチ設定では、このコードにより、ブータブル・イメージが格納されているメディアを指定するヒューズが読み取られます。ブータブル・イメージが見つかると、U-Bootの実行が自動的に開始されます。
Cortex®-A35のシリアル・コンソールに情報が表示されます。U-Bootプロセスを停止しない場合は、引き続きカーネルのブートが実行されます。
Something went wrong! Please try again.
このセクションは、ボードにLinuxオペレーティング・システムをロードする場合にのみ適用されます。
i.MX Linuxボード・サポート・パッケージ (BSP) は、特定のi.MX開発プラットフォームで組込みLinuxイメージをブートするために使用されるバイナリ・ファイル、ソース・コード、およびサポート・ファイルの集まりです。
Linuxバイナリ・デモ・ファイルの現在のリリースは、i.MXのLinuxダウンロード・ページにあります。その他のドキュメントは、i.MXソフトウェアおよび開発ツールのLinuxセクションにあるi.MX Linuxドキュメント・バンドルで入手できます。
Something went wrong! Please try again.
i.MXボード上でLinux OSカーネルがブートできるようになる前に、Linuxカーネルがブート・デバイス(SDカード、eMMCなど)にロードされ、そのデバイスをブートするようにブート・スイッチが設定されます。
各種のボードやブート・デバイス用のLinux BSPイメージをダウンロードするには、さまざまな方法があります。
このスタート・ガイドでは、Linux BSPイメージをSDカードに転送するいくつかの方法のみを示します。経験豊富なLinux開発者は、他のオプションを検討することもできます。
Something went wrong! Please try again.
i.MX 8QuadXPlus MEK用の最新のビルド済みイメージは、Linuxのダウンロード・ページでLinuxの最新バージョンの項目から入手できます。
ビルド済みのNXP Linuxバイナリ・デモ・イメージは、プロセッサの使用および評価のための標準的なシステムと基本的な機能のセットを提供します。システムを変更する必要なしに、ユーザーはハードウェアのインターフェースを評価し、SoC機能をテストし、ユーザー空間のアプリケーションを実行できます。
より柔軟性が必要な場合は、SDカードに個々のコンポーネント(ブート・ローダ、カーネル、dtbファイル、rootfsファイル)を1つずつロードするか、.sdcardイメージをロードして個々の部分を特定のコンポーネントで上書きします。
UUU GitHubのページから最新の安定ファイルをダウンロードします。UUUに関する詳細なチュートリアルは、UUU GitHubのページにあります。
uuu
libusb1
(apt-getまたは他のパッケージ・マネージャ経由)デフォルトでは、イメージがeMMCフラッシュに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページを参照してください。
ターミナル・アプリケーションを開き、uuuとi.MX 8QuadXPlus MEK用の最新のLinuxディストリビューションが格納されている場所にディレクトリを変更します。uuuファイルに実行権限を追加し、ファイルを実行します。uuuはUSBデバイスが接続されるまで待機します
$ chmod a+x uuu $ sudo ./uuu _images_.zip
ボードの電源を入れると、uuuはボードへのイメージのコピーを開始します。
完了したら、ボードの電源を切ります。「ブート・スイッチの設定」を参照して、eMMCからブートするようにボードを設定します。
UUU GitHubのページから最新の安定ファイルをダウンロードします。UUUに関する詳細なチュートリアルは、UUU GitHubのページにあります。
uuu.exe
デフォルトでは、イメージがeMMCフラッシュに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページを参照してください。
コマンド・プロンプト・アプリケーションを開き、uuu.exe
ファイルとi.MX 8QuadXPlus MEK用のLinuxリリースが格納されているディレクトリに移動します。
uuu.exe _images_.zip
ボードの電源を入れると、uuu
はボードへのイメージのコピーを開始します。
完了したら、ボードの電源を切ります。「ブート・スイッチの設定」を参照して、eMMCからブートするようにボードを設定します。
Something went wrong! Please try again.
このセクションでは、i.MX 8QuadXPlus MEKボードに組込みAndroidシステム・イメージをロードするブート・プロセスについて説明し、独自のシステム・イメージを作成するソフトウェア・コンポーネントのビルド方法も紹介します。Androidプラットフォームのビルドの詳細については、Androidのビルドを参照してください
現在のリリースには、デモ・イメージ、ソース・コード、ドキュメントが含まれています。これらは、i.MXソフトウェアと開発ツールのAndroidのセクションにもあります。
Something went wrong! Please try again.
開発システム上のストレージ・デバイス(MMC/SDまたはNAND)は、U-Bootブート・ローダを使用してプログラムする必要があります。ブート・プロセスでは、スイッチの設定に基づいて、どのストレージ・デバイスにアクセスするかを決定します。ブート・ローダがロードされて実行が開始されると、U-Boot環境空間が読み取られ、ブート・プロセスの実行方法が決定されます。
イメージは、ビルド済みのリリース・パッケージから取得することも、ソース・コードから作成することもできます。入手方法に関係なく、すべてのAndroidイメージには以下のコンポーネントが含まれます。
U-Bootイメージ:u-boot.imx
ブート・イメージ:boot.img
Androidシステム・ルート・イメージ:system.img
リカバリ・ルート・イメージ:recovery.img
Android BSPの詳細については、Androidユーザー・ガイドを参照してください。
Something went wrong! Please try again.
ビルド済みのNXP Androidデモ・イメージは、評価用の特定の機能を備えたデフォルトのシステムを提供します。システムを変更することなく、ユーザーはいくつかの基本的な操作を実行し、システムと対話しながらハードウェア・インターフェースをテストし、ユーザー空間でソフトウェア・アプリケーションを開発できます。
パッケージのビルド済みイメージは、ブート・デバイスごとに分類され、デバイス名のディレクトリに格納されます。最新のビルド済みイメージ・ファイルは、i.MXソフトウェアと開発ツールのAndroidのセクションにあります。
Something went wrong! Please try again.
「パッケージの内容」セクションでの接続に加えて、適切なUSBケーブルを使用してJ10をホスト・マシンに接続します。
ボードの電源を切ります。「ブート・スイッチの設定」を参照し、SDP(シリアル・ダウンロード・プロトコル)モードでブートするようにボードを設定します。
ホスト・マシンで使用されているOSに応じて、Android BSPイメージをSDカードに転送する方法は異なります。詳細な手順については、以下のオプションを選択してください。
UUU GitHubのページから最新の安定ファイルをダウンロードします。UUUに関する詳細なチュートリアルは、GitHubにあります。
Androidのデモ・ファイルをNXPからダウンロードします。
ダウンロードしたファイルを適切なディレクトリに展開します。
デフォルトでは、イメージがeMMCフラッシュに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページを参照してください。
「LinuxでのUUUのダウンロード」セクションでダウンロードしたuuu
という名前のファイルを、Androidのデモを展開したディレクトリにコピーします。
$ sudo ./uuu_imx_android_flash.sh -f imx8qxp -a -e -u trusty
シリアル・ダウンロード・モードでボードの電源を入れると、uuuはボードへのイメージのコピーを開始します。ボードをシリアル・ダウンロード・モードにするには、「ブート・スイッチの設定」セクションの指示に従ってください。
完了したら、ボードの電源を切ります。「ブート・スイッチの設定」を参照して、eMMCからブートするようにボードを設定します。
UUU GitHubのページから最新の安定ファイルをダウンロードします。UUUに関する詳細なチュートリアルは、GitHubにあります。
Androidのデモ・ファイルをNXPからダウンロードします。
ダウンロードしたファイルを適切なディレクトリに展開します。
デフォルトでは、イメージがeMMCフラッシュに書き込まれます。他のデバイスにイメージを書き込む方法については、UUU GitHubのページを参照してください。
「WindowsでのUUUのダウンロード」セクションでダウンロードしたuuu
という名前のファイルを、Androidのデモを展開したディレクトリにコピーします。
コマンド・プロンプトを開き、Androidのデモを展開したディレクトリに移動します
> ./uuu_imx_android_flash.bat -f imx8qxp -a -e -u trusty
シリアル・ダウンロード・モードでボードの電源を入れると、uuuはボードへのイメージのコピーを開始します。ボードをシリアル・ダウンロード・モードにするには、「ブート・スイッチの設定」セクションの指示に従ってください。
完了したら、ボードの電源を切ります。「ブート・スイッチの設定」を参照して、eMMCからブートするようにボードを設定します。
Something went wrong! Please try again.
MCUXpressoソフトウェア開発キット (MCUXpresso SDK) は、i.MX 8QuadXPlus M4コアで実行される包括的なソフトウェア・ソース・コードを提供します。
現時点でi.MX 8QuadXPlusでCortex®-M4を有効にしたくない場合は、このセクションをスキップできます。
MCUXpresso SDKは、Cortex®-M4をスタンドアロンまたはAコアとともに使用する組込みアプリケーションの開発用に設計されています。MCUXpresso SDKは、ペリフェラル・ドライバに加えて、基本的なペリフェラルの使用例からデモ・アプリケーションまでをカバーする豊富なサンプル・アプリケーションのセットを提供します。MCUXpresso SDKには、RTOSカーネルとデバイス・スタック、および迅速な開発をサポートするさまざまなミドルウェアも含まれています。
ホスト・マシンで使用されているOSに応じて、デモの作成および展開の方法が異なります。詳細な手順については、以下のオプションを選択してください。
MCUXpresso SDKおよびソース・コードの現在のリリースについては、MCUXpresso SDK Builderをご覧ください 。
i.MX 8QuadXPlus向けMCUXpresso SDKをダウンロードするには、次の手順に従ってください。
MEK-MIMX8QX
]を選択し、右側にある[Build MCUXpresso SDK(MCUXpresso SDKのビルド)]をクリックします。launchpad.net/gcc-arm-embedded
からインストーラをダウンロードして、実行します。これは実際のツールチェーンです。ツールチェーンには、コンパイラやリンカなどが含まれます。ダウンロード済みのパッケージにあるMCUXpresso SDKリリース・ノートに記載されている、サポート対象の最新バージョンのGCCツールチェーンを使用する必要があります。ARMGCC_DIR
としてエクスポートします。 $ export ARMGCC_DIR=/usr
注:apt-get gcc-arm-none-eabi
の場合、/usr
が通常のインストール・ディレクトリになります。これが異なる場合は、ディレクトリを変更してください。
$ sudo apt-get install cmake $ sudo apt-get install gcc-arm-none-eabi
$ cd /boards/MEK-MIMX8QX/demo_apps/armgcc $ ./build_all.sh
コンパイラ最適化はローに設定され、実行ファイルのデバッグ情報が生成されます。開発時やデバッグ時には、このターゲットを選択します。
コンパイラ最適化はハイに設定され、デバッグ情報は生成されません。最終的なアプリケーション実装時には、このターゲットを選択します。
注:両方の構成をビルドするためのスクリプト・ファイルが用意されています。今回の例では、デバッグ
・ターゲットをビルドするため、コマンド・ラインにbuild_debug.sh
と入力します。リリース
・ターゲットを選択する場合は、build_release.sh
と入力します。
.bin
) が生成されます。これらのファイルは、「debug(デバッグ)」フォルダと「release(リリース)」フォルダにあります。hello_world.bin
をSDカードのブート・パーティションにコピーします。このセクションでは、SDカードとi.MXプロセッサ用のビルド済みU-Bootイメージを使用してアプリケーションを実行する方法について説明します。
J12
からブートします。MEKボードには、ブート用のSDスロットが1つしかありません。=>fatload mmc 1:1 0x88000000 hello_world.bin => dcache flush => bootaux 0x88000000
MCUXpresso SDKおよびソース・コードの現在のリリースについては、MCUXpresso SDK Builderをご覧ください 。
i.MX 8QuadXPlus向けMCUXpresso SDKをダウンロードするには、次の手順に従ってください。
MEK-MIMX8QX
]を選択し、右側にある[Build MCUXpresso SDK(MCUXpresso SDKのビルド)]をクリックします。GCC ARM Embedded
]を選択します。launchpad.net/gcc-arm-embeddedからインストーラをダウンロードして、実行します。これは実際のツールチェーンです。ツールチェーンには、コンパイラやリンカなどが含まれます。ダウンロード済みのパッケージにあるMCUXpresso SDKリリース・ノートに記載されている、サポート対象の最新バージョンのGCCツールチェーンを使用する必要があります。
MinGW (Minimalist GNU for Windows) 開発ツールは、サード・パーティ製のCランタイムDLL(Cygwinなど)に依存しないツール・セットを備えています。MCUXpresso SDKで使用されているビルド環境では、MinGWビルド・ツールを利用せず、MinGWとMSYSのベース・インストールを活用しています。MSYSは、Unixに似たインターフェースと各種ツールを備えた基本シェルを提供します。
注:インストール・パスにスペースを含めることはできません。
mingw32-base
とmsys-base
が選択されていることを確認します。 図13. MinGWのファイル
Apply Changes(変更を適用)
]をクリックし、残りの手順に従ってインストールを完了します。 図14. 変更の適用
デフォルトのインストール・パスであるC:\MinGW
を使用した例を以下に示します。パスが正しく設定されていないと、ツールチェーンは機能しません。
PATH
変数にC:\MinGW\msys\x.x\bin
が設定されている場合(KSDK 1.0.0向けの旧仕様)、これを削除してください。削除されていないと、新しいGCCビルド・システムが正しく機能しない場合があります。
ARMGCC_DIR
という名前を付けます。この変数の値で、Arm® GCC Embeddedツールチェーンのインストール・パスを指定します。今回の例では、C:\Program Files (x86)\GNU Tools Arm Embedded\4.8 2014q3
になります。 インストール・フォルダの正確なパス名については、GNU Arm® GCC Embeddedツールのインストール・フォルダを参照してください。
図15. 変数名
CMakeをインストールする前に、必ず[Add CMake to system PATH(CMakeをシステム・パスに追加)]オプションを選択してください。すべてのユーザーが使用できるパスにインストールするか、現在のユーザーのみが使用できるパスにインストールするかは、ユーザーが選択します。今回の例では、すべてのユーザーに対してインストールしています。
図16. CMakeのインストール
インストーラの残りの手順に従います。
注:PATHの変更を適用するには、システムの再起動が必要になる場合があります。
図17. GCCコマンド・プロンプト
> cd
> build_all.bat
または、エクスプローラでbuild_ all.bat
ファイルをダブルクリックし、ビルドを実行します。次のような出力画面が表示されることが予想されます。
図18. ビルドの結果
コンパイラ最適化はローに設定され、実行ファイルのデバッグ情報が生成されます。開発時やデバッグ時には、このターゲットを選択します。
コンパイラ最適化はハイに設定され、デバッグ情報は生成されません。最終的なアプリケーション実装時には、このターゲットを選択します。
注:両方の構成をビルドするためのスクリプト・ファイルが用意されています。今回の例では、デバッグ・ターゲットをビルドするため、コマンド・ラインにbuild_debug.bat
と入力します。リリース
・ターゲットを選択する場合は、build_release.bat
と入力します。
.bin
) が生成されます。これらのファイルは、「debug(デバッグ)」フォルダと「release(リリース)」フォルダにあります。hello_world.bin
をSDカードのブート・パーティションにコピーします。このセクションでは、SDカードとi.MXプロセッサ用のビルド済みU-Bootイメージを使用してアプリケーションを実行する方法について説明します。
=>fatload mmc 1:1 0x88000000 hello_world.bin
=>dcache flush
=>bootaux 0x88000000
Something went wrong! Please try again.
ドキュメントとビデオ | 説明 |
---|---|
i.MX 8/8XファミリDDRツールのリリース |
i.MX 8/8X DDRツールは、ユーザーがデバイス構成(密度、チップ選択の数など)やボードのレイアウト(データ・バス・ビットのスウィズリングなど)に基づいて、カスタムのDRAM初期値の生成やテストを行えるようにするためのものです。 |
ドキュメントとビデオ | 説明 |
---|---|
AN12714 CAAMセキュリティ・キーを使用したi.MX暗号化ストレージ |
i.MXの暗号化アクセラレータおよび保証モジュール (CAAM) が提供するセキュリティ・キー機能を利用して、DM-Cryptによる透過的ストレージ暗号化をブロック・レベルで実行する手順について説明します。 |
AN12838 CAAMセキュリティ・キーを使用した公開鍵暗号の強化 |
i.MXアプリケーション・プロセッサで提供されているBlack Key機能に基づいた公開鍵暗号化スキームについて説明します。 |
AN12554 CAAMを使用して赤/黒のBlobを生成し、データを暗号化/復号化するデモ・アプリケーション |
red key blobとblack key blobの両方を生成し、それらを使用してデータを暗号化および復号化するデモ・アプリケーションのセットアップおよび実行方法の説明と手順。 |
AN12906 i.MX 8QXPおよびi.MX 8DXLにおけるHSMおよびSHE |
ハードウェア・セキュリティ・モジュール (HSM) とセキュア・ハードウェア拡張 (SHE) は、NXP製品における2つのセキュリティ・サービスであり、各種の車載アプリケーションをサポートしています。このドキュメントは、これらのサービスのアーキテクチャに関する初歩的知識を提供し、HSMおよびSHE APIを使用したアプリケーションの開発に役立ちます。 |
Trusted Execution Environment:i.MXプロセッサにおけるOP-TEEのスタート・ガイド |
TEEの概要、サンプルの使用例、およびOP-TEEによるi.MXハードウェアのセキュリティ機能の活用方法について説明します。 |
エッジをセキュアに:製造の保護:非セキュアな環境における機密データのプロビジョニング |
このウェビナーでは、製造の保護機能の概要、およびこの機能を使用して機密データをセキュアに転送およびインストールする方法について説明します。 |
AN12312 AHABを使用したi.MX 8およびi.MX 8Xファミリのセキュア・ブート |
i.MXアプリケーション・プロセッサ・ファミリは、オンチップROM上のAdvanced High Assurance Boot (AHAB) コンポーネントとセキュリティ・コントローラ (SECO) ファームウェアを使用したセキュア・ブート機能を備えています。ROM内のAHABは、SECOファームウェア(NXP署名済み)の認証に対応します。これにより、ユーザーによって署名されたイメージを認証するためのサービスがシステム・コントローラのROMに提供されます。 |
AN12812 ハードウェア・セキュリティ・モジュールを備えたコード署名ツールの使用 |
このドキュメントでは、ユーザーがバックエンドのハードウェア・セキュリティ・モジュール (HSM) を備えたコード署名ツール (CST) を効果的に使用するために必要な情報を提供しています。 |
i.MX 8QuadXPlus MEKボードには、暗号化と復号化のプロセスをハードウェアで高速化するために、CryptoDevを介して使用できる暗号化アクセラレーションおよび保証モジュール (CAAM) が含まれています。大量のデータを扱う場合や、パフォーマンスが重要なアプリケーションでは、このモジュールを使用することをお勧めします。この例では、暗号化オフロード・エンジンとしてCAAMを使用する利点を示します。
OpenSSLは、セキュリティ・プロトコルのSSL (Secure Sockets Layer) とTLS (Transport Layer Security) を定義するオープン・ソース・プロジェクトです。盗聴を防ぐために安全な情報送信を必要とするアプリケーションで使用できるソフトウェア・ライブラリが含まれています。
OpenSSLには、目的の暗号化アルゴリズムでの暗号化パフォーマンスをテストするspeedコマンドが含まれています。この例で使用されるアルゴリズムは、Cipher Block Chaining (CBC) 動作モードと128ビット・ブロックを備えたAdvanced Encryption Standard (AES) 暗号化アルゴリズムを実装するaes-128-cbc
です。
OpenSSLの速度テストは、次のコマンドを使用して確認できます。
# openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 19785933 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 10656521 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 3706151 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 1036434 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 134183 aes-128-cbc's in 3.00s
OpenSSL 1.0.2n 7 Dec 2017
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int)
blowfish(ptr)
compiler: arm-poky-linux-gnueabi-gcc -march=armv7ve -mfpu=neon -mfloat-abi=hard
-mcpu=cortex-a7
-DL_ENDIAN -DTERMIO -O2 -pipe -g -feliminate-unused-debug-types -Wall -Wa,--noexecstack
-DHAVE_CRYPTODEV
-DUSE_CRYPTODEV_DIGESTS The 'numbers' are in 1000s of bytes per second processed. type
16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128-cbc 105524.98k 227339.11k
316258.22k 353769.47k 366409.05k
cryptodev
モジュールをロードし、openssl
コマンドを再度実行します。今回は、タイミング値が加速された値を示していることがわかります。ブロック・サイズが大きくなるほど、経過時間が短くなります。
# modprobe cryptodev
cryptodev: driver 1.9 loaded.
# openssl speed -evp aes-128-cbc -engine cryptodev engine "cryptodev" set.
Doing aes-128-cbc for 3s on 16 size blocks:
103333 aes-128-cbc's in 0.07s Doing aes-128-cbc for 3s on 64 size blocks: 102441
aes-128-cbc's in 0.09s
Doing aes-128-cbc for 3s on 256 size blocks: 84088 aes-128-cbc's in 0.08s
Doing aes-128-cbc for 3s on 1024 size blocks: 72447 aes-128-cbc's in 0.04s
Doing aes-128-cbc for 3s on 8192 size blocks: 25304 aes-128-cbc's in 0.03s OpenSSL
1.0.2n 7 Dec 2017 built on: reproducible build, date unspecified options:bn(64,64)
rc4(ptr,char) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(ptr) compiler:
aarch64-poky-linux-gcc -DL_ENDIAN -DTERMIO -O2 -pipe -g -feliminate-unused-debug-type
The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256
bytes 1024 bytes 8192 bytes aes-128-cbc 23618.97k 72846.93k 269081.60k 1854643.20k
6909678.93k
CryptoDevでサポートされる暗号化アルゴリズムのリストを次のコマンドで表示できます。
# openssl engine cryptodev -c
(cryptodev) BSD cryptodev engine
[RSA, DSA, DH, DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC,
hmacWithMD5, hmacWithSH A1, RIPEMD160, MD5, SHA1]
ドキュメントとビデオ | 説明 |
---|---|
AN12409 i.MX6/7/8シリーズUSB認証ガイド |
この文書は、i.MX6/7/8シリーズのアプリケーション・プロセッサ・ファミリでUSB認証テストを実施する方法を説明することを目的としたものです。これには、手順の説明やUSBコンプライアンス・テストのツールおよび基準が含まれます。 |
AN12444 i.MX 8シリーズ向けPCIe認証ガイド |
i.MX 8シリーズ製品でのPCI Express 3.0、2.0、および1.1/1.0aの設計に関するコンプライアンス・テストの手順やツール、基準についてすばやく簡単に理解できます。PCIe® BASE仕様に基づくシリコン検証、およびPCIe CEM仕様に基づくアドイン・カード・マザーボード・システムの両方に対応しています。 |
AN13164 i.MX8MP PCIe帯域幅の分析 |
このドキュメントでは、プロトコル・オーバーヘッド後にGen3 x1付近のライン・レート帯域幅 (8 Gbits/s) を実現できるケースについてより明確に理解できるよう、i.MX 8M PlusでのPCIeのさまざまな使用シナリオを提示しています。注:このアプリケーション・ノートでは i.MX 8MPについて述べていますが、テスト環境の設定はi.MX 8QXPの場合も同じです。ただし、帯域幅の量はこれに該当しません。 |
AN13210 LinuxでのFlexCANの使用方法 |
i.MX 8MP EVK - i.MX8MPは、リアルタイム・ドメインまたはLinuxドメインからプログラム可能な2つのFlexCAN FDインターフェースを提供します。このドキュメントでは、LinuxでFlexCANがどのように使用されるのかを明確に理解できるよう、i.MX 8M PlusでのFlexCANのさまざまな使用シナリオを紹介しています。注:このアプリケーション・ノートでは i.MX 8MPについて述べていますが、LinuxでのFlexCANの使用方法はi.MX 8QXPの場合も同じです。 |
i.MX 8QuadXPlus MEKを使用してLinuxでインターネットに接続するには、次の手順に従います。
RJ-45
コネクタにイーサネット・ケーブルを接続します。# ifconfig eth0
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.81 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=4.87 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=4.94 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=4.61 ms
ドキュメントとビデオ | 説明 |
---|---|
クラウド・コネクティビティ |
Amazon Web Services、Microsoft Azure、Google Cloud IoTなどのクラウド・サービスの統合サポート。 |
Linux OSを実行するi.MX 8M Quad EVK上のNXPベースのWiFiモジュールのスタート・ガイド |
このマニュアルでは、i.MX 8M Quad EVKの起動、BSPイメージの設定、NXPベースのワイヤレス・モジュールとのハードウェア接続、Wi-FiおよびBluetoothインターフェースの起動方法について取り上げています。 注:このドキュメントではi.MX 8Mについて言及していますが、その内容はi.MX 8QXPにも該当します。ただし、WiFiインターフェースの種類は異なります。 |
i.MX 8M Quad EVKにおけるNXPベースのワイヤレス・モジュールの機能設定ガイド |
このドキュメントでは、Azurewave AW-CM358MA (88W8987) およびAzurewave AW-CM276MA (88W8997) ワイヤレス・モジュールを搭載したi.MX 8M Quad EVKのWi-Fi/Bluetoothの機能と構成について記載しています。Wi-FiおよびBluetoothインターフェースの初期化と設定について取り上げています。 注:このドキュメントではi.MX 8Mについて言及していますが、その内容はi.MX 8QXPにも該当します。 |
ドキュメントとビデオ | 説明 |
---|---|
AN13285 Cortex-M4コア用L1キャッシュを使用したi.MX 8X |
i.MX 8Xシリーズ・プロセッサに組み込まれた、Cortex-M4コア用のL1キャッシュ、メモリ・タイプ、属性、メモリ保護ユニットなどのキャッシュ・システムの基本テクノロジを紹介しています。キャッシュを利用して、高い性能で正しく動作するアプリケーションを開発する方法について説明します |
PF8100-8200は、i.MX 8およびi.MX8Xファミリ向けに最適化されたNXPパワーマネジメントICです。
ドキュメントとビデオ | 説明 |
---|---|
AN12338 i.MX 8QuadXPlusの消費電力の測定 |
NXP Multisensory Evaluation Kit (MEK) プラットフォームで実施されるi.MX 8QuadXPlusアプリケーション・プロセッサの電流ドレイン測定について、いくつかの使用例を用いて説明しています。 |
i.MXボード上でLinuxが動作している場合、i.MX SoCが提供する特別な機能を評価できます。この例では、低消費電力モードへのサスペンドと、通常の動作に戻す方法を示します。
次のコマンドを入力して、ボードのウェイクアップ・ソースとしてシリアルTTYを有効にします。
# echo enabled > /sys/class/tty/ttymxc0/power/wakeup
次のコマンドを入力して、Suspend-To-RAMモードに入ります。
# echo mem > /sys/power/state
[ 18.832439] PM: Syncing filesystems ... done.
[ 18.939268] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 18.947957] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 18.956810] Suspending console(s) (use no_console_suspend to debug)
スイッチSW3
を押して、ボードをウェイクアップします。ターミナルには次のメッセージが表示されます。
[ 138.859067] PM: suspend of devices complete after 40.103 msecs
[ 138.859071] PM: suspend devices took 0.040 seconds
[ 138.861306] PM: late suspend of devices complete after 2.229 msecs
[ 138.864518] PM: noirq suspend of devices complete after 3.207 msecs
[ 138.864521] Disabling non-boot CPUs ...
[ 138.892702] CPU1: shutdown
[ 138.892705] psci: CPU1 killed.
[ 138.940761] CPU2: shutdown
[ 138.940764] psci: CPU2 killed.
[ 138.992702] CPU3: shutdown
[ 138.992704] psci: CPU3 killed.
[ 139.005413] Enabling non-boot CPUs ...
[ 139.017625] Detected VIPT I-cache on CPU1
[ 139.017647] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[ 139.017689] CPU1: Booted secondary processor [410fd034]
[ 139.018002] cache: parent cpu1 should not be sleeping
[ 139.018221] CPU1 is up
[ 139.033610] Detected VIPT I-cache on CPU2
[ 139.033624] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[ 139.033654] CPU2: Booted secondary processor [410fd034]
[ 139.033930] cache: parent cpu2 should not be sleeping
[ 139.034129] CPU2 is up
[ 139.049722] Detected VIPT I-cache on CPU3
[ 139.049737] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[ 139.049767] CPU3: Booted secondary processor [410fd034]
[ 139.050049] cache: parent cpu3 should not be sleeping
[ 139.050257] CPU3 is up
[ 139.106888] PM: noirq resume of devices complete after 56.624 msecs
[ 139.108600] PM: early resume of devices complete after 1.408 msecs
[ 139.115589] Suspended for 0.435 seconds
[ 139.116781] PM: resume of devices complete after 8.175 msecs
[ 139.262945] Restarting tasks ... done.
[ 139.277327] hantro receive hot notification event: 0
ドキュメントとビデオ | 説明 |
---|---|
i.MX 8 プロセッサ向けDSP Concepts製品 |
i.MX 8Mファミリ向けDSP Conceptsオーディオ・プラットフォーム製品について紹介しています。 |
このシンプルなオーディオの例は、audiotestsrc
とalsasink
の間のリンクを示しています。
最初に、[aplay -|] を使用してサウンド・カードの情報を確認します。WM8960に割り当てられているサウンド・カード番号を確認してください。WM8960のサウンド・カード番号と一致するように、必要に応じて以下のgstreamerコマンドを変更します。たとえば、WM8960のサウンド・カード番号が2の場合は、gstreamerコマンドの末尾を「hw:2」に変更します。
i.MX 8QuadXPlus MEKボードのオーディオ・ジャックにイヤホンを接続します。
イヤホンにマイク機能(4つの接点を持つTRRS)が付いている場合は、マイク・ジャックを最後まで押し込んでください。1つの接点リングを外側に残します
# gst-launch-1.0 audiotestsrc ! alsasink device=hw:2
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ... New clock: GstAudioSinkClock
イヤホンで音が聞こえるはずです。
音を確認したら、[Ctrl+C] を押してコマンド・ラインを終了します。
この例は、ビデオ・ファイルからオーディオだけをデコードする方法を説明します。SDカードのrootfsパーティションの/home/root/
にビデオ・ファイルをコピーし、SDカードからボードをブートして、次のコマンドを実行します。
注:Big Buck Bunnyのサイトから、例で使用されているファイルを無料で入手できます。
デフォルトの出力デバイスはcs42888です。まず、次の手順に従って出力デバイスをwm8960に設定します。
pulseAudioデーモンを起動します
# pulseaudio --start
wm8960のシンク番号を取得します
# pacmd list-sinks
デフォルトのシンクをwm8960に設定します
# pacmd set-default-sink 2
次に以下のコマンドを実行すると、ビデオ・ファイルを再生できます。
# gplay-1.0 big_buck_bunny_1080p_stereo.avi
FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
Set VideoSink kmssink
Set TextSink fakesink
====== AIUR: 4.3.4 build on Mar 12 2018 11:47:35. ======
Core: AVI_PARSER_03.05.29 build on Aug 31 2017 09:15:57
file: /usr/lib/imx-mm/parser/lib_avi_parser_arm_elinux.so.3.1
Track 00 [video]: Disabled
Codec: 4, SubCodec: 1
------------------------
------------------------
Track 01 [audio_0] Enabled
Duration: 0:09:56.424000000
Language: und
Mime:audio/mpeg, mpegversion=(int)1, channels=(int)2, rate=(int)48000,bitrate=(int)0
------------------------
====== BEEP: 4.3.4 build on Mar 12 2018 11:47:45. ======
Core: MP3 decoder Wrapper build on Jan 11 2018 10:20:25
file: /usr/lib/imx-mm/audio-codec/wrap/lib_mp3d_wrap_arm_elinux.so.3
CODEC: BLN_MAD-MMCODECS_MP3D_Arm_02.13.01_ArmV8 build on Jan 11 2018 10:05:45. [Stop (No
Repeated)][Vol=1.0][00:00:00/00:09:56]=========== fsl_player_play()==================
FSL_GPLAY2_01.00_LINUX build on Mar 12 2018 11:48:19
[h]display the operation Help
[p]Play
[s]Stop
[e]Seek
[a]Pause when playing, play when paused
[v]Volume
[m]Switch to mute or not
[>]Play next file
[ [r]Switch to repeated mode or not
[u]Select the video track
[d]Select the audio track
[b]Select the subtitle track
[f]Set full screen
[z]resize the width and height
[t]Rotate
[c]Setting play rate
[i]Display the metadata
[x]eXit
State changed: buffering
State changed: playing
[Playing (No Repeated)][Vol=1.0][00:07:12/00:09:56]EOS Found
getNextItem No next item!
No more media file, exit gplay!
State changed: stopped
Exit display thread
FSL_PLAYER_UI_MSG_EXIT
fsl_player_deinit
ドキュメントとビデオ | 説明 |
---|---|
i.MXグラフィックス・ユーザー・ガイド |
グラフィック・アプリケーションやビデオ・ドライバを作成する開発者向けに、グラフィックAPIおよびドライバのサポートに関する情報を提供します。 |
i.MX 8 GStreamerユーザー・ガイド |
i.MX 8M Nano EVKでのGStreamer version 1.0の使用方法について、詳細に説明しています。これには、デコード、エンコード、カメラ、ビデオ合成、ビデオのスケーリングと回転などの例が含まれます。 |
NXP MCUと組込みウィザードを使用したリアルタイム・インダストリアルHMIシステムへのグラフィックスの実装 |
NXPはTARA Systemsと連携し、イネーブリング・ソフトウェア・テクノロジとして組込み型のウィザードを提供しています。 |
AN12189 i.MX 8X評価キット向けMX8-DSI-OLED1のクイック・スタート・ガイド |
このドキュメントでは、MX8-DSI-OLED1アクセサリ・カード、タッチ・スクリーン・サポート付きMIPI-DSIインターフェースOLEDディスプレイ・キット、およびi.MX 8QXP EVKの導入方法の概要を説明しています。 |
AN12188 i.MX 8Xの評価向けIMX-MIPI-HDMIのクイック・スタート・ガイド |
このドキュメントでは、i.MX 8QXP EVK、およびMIPI-DSI信号をHDMI信号に変換するIMX-MIPI-HDMIアクセサリ・カードの導入方法の概要を説明しています。 |
i.MX 8QXP-MEKディスプレイ・セレクション・ガイド |
LinuxとAndroidでの使用例におけるi.MX 8QXP MEK mini-SASコネクタの機能について説明しています。これには、サポートされているドータ・カード、デバイス・ツリー (DTS) ファイルやブート・イメージの変更プロセス、およびボードでのさまざまなディスプレイ・オプションの有効化などが含まれます。 |
ドキュメントとビデオ | 説明 |
---|---|
i.MX 8カメラのユース・ケース |
i.MX 8 MIPI CSIのユース・ケース、Advanced GStreamerカメラのユース・ケース、i.MX 8M Nano EVKBでサポートされている利用可能なカメラとドータ・カード、互換性のあるデバイス・ツリー (DTS) ファイル、およびさまざまなカメラ・オプションを有効化する方法について詳細に説明しています。 注:このドキュメントではi.MX 8M Nanoについて言及していますが、その内容はi.MX 8QXPにも該当します。 |
i.MX 8 GStreamerユーザー・ガイド |
i.MX 8M Nano EVKでのGStreamer version 1.0の使用方法について、詳細に説明しています。これには、デコード、エンコード、カメラ、ビデオ合成、ビデオのスケーリングと回転などの例が含まれます。 注:このドキュメントではi.MX 8M Nanoについて言及していますが、その内容はi.MX 8QXPにも該当します。 |
AN12187 i.MX 8M評価キット向けMINISASTOCSIのクイック・スタート・ガイド |
このドキュメントでは、i.MX 8M EVK、およびOmniVisionチップ・セットOV5640をベースにしたMIPI-CSIインターフェース・カメラ・キットであるMINISASTOCSIアクセサリ・カードの導入方法について簡単に説明します。 注:このドキュメントではi.MX 8M EVKについて言及していますが、MINISASTOCSIはi.MX 8QXP MEKでも使用できます。 |
ドキュメントとビデオ | 説明 |
---|---|
i.MX 8/8Xの機能安全コンセプト |
i.MX 8/8Xは、SEooC(特定条件に依存しない安全要素)のMPUとして設計されており、重要な情報やアラートを常に把握して分析する必要がある車載デジタル・インストルメント・クラスタなど、セーフティ・クリティカルな用途に特化した方法で使用できます。 |
i.MX 8/8Xアプリケーション・プロセッサ・ファミリの産業および車載における機能安全のコンセプト |
i.MX 8およびi.MX 8Xプロセッサ・ファミリは、プラットフォーム・レベルからSIL 2/3およびASIL A/Bを満たすというニーズに応える、セーフティ・メカニズムを備えています。お客様固有のユース・ケースに対応する、品質管理された (QM) 安全関連ハードウェア・コンポーネントをご確認ください。 |
機械学習 (ML) は一般的に、人間が生み出した抽象概念の分類、認識、予測が求められる用途に幅広く対応します。画像認識、ジェスチャー認識、異常検出、音声のテキスト変換、テキストの音声変換、ASR、情景認識など、多くの例が挙げられます。ここでは、特に画像やビデオのストリームに適用されるNXP MLツールに焦点を当てます。音声とオーディオの各セクションでも、ここに含まれるサンプルを参照している場合があります。
ドキュメントとビデオ | 説明 |
---|---|
eIQ® MLソフトウェア開発環境 |
NXPのMCU、i.MX RTクロスオーバーMCU、i.MXファミリSoCで、MLアルゴリズムを使用できるようになります。eIQソフトウェアには、推論エンジン、ニューラル・ネットワーク・コンパイラ、最適化されたライブラリが含まれています。 |
i.MX機械学習ユーザー・ガイド |
NXPのi.MX向けeIQ UMツールキットは、NXPのマイクロコントローラとアプリケーション・プロセッサを対象とした機械学習向けのライブラリと開発ツールのセットです。 |
i.MXアプリケーション・プロセッサ向けNXP eIQ機械学習ソフトウェア開発環境 |
このユーザー・マニュアルは、i.MXファミリでサポートされているMLソフトウェアに関するガイドを提供します。eIQの概要、Yoctoのインストール・ガイド、およびサポートされているすべてのDNNおよび非DNNのサンプルを実行するためのステップ・バイ・ステップ・ガイドが含まれています。 |
eIQに関するよくある質問 (FAQ) |
このドキュメントでは、eIQと組込み機械学習に関してよく寄せられる質問のいくつかを取り上げています。 |
AN13001 Glowのメモリの分析 |
Glowコンパイラによって生成されたGlowメモリ情報を理解し、特定のモデルに必要なメモリを計算する方法を紹介します。このコンパイラは、モデルの実行に必要な最小メモリ・サイズを測定するために使用できます。 |
AN12766 Tensor Flow LiteのK-Meansクラスタリングを使用した、eIQによる異常検出 |
異常検出を使用した機械状態監視アプリケーションを実現する手順を紹介します。 |
i.MXアプリケーション・プロセッサ向けeIQソフトウェアのスタート・ガイド |
ボードの開梱から実装、モデリング、エッジでの推論まで、NXP eIQ MLソフトウェア開発環境の使用に関する一連のステップ・バイ・ステップ・チュートリアル。 |
Arm NNライブラリを使用したeIQ推論 - eIQ Arm NN(ニューラル・ネットワーク)は、Caffe、TensorFlow、TensorFlow Lite、ONNXモデルをサポートするCPU、GPU、およびその他のコンピューティング・エンジン用の推論エンジンです
TensorFlow Liteライブラリを使用したeIQ推論 - TensorFlow Liteは、低レイテンシかつ小型フットプリントの推論エンジンで、Eigenライブラリ、事前融合されたアクティベーション、量子化されたカーネルなどの技術が使用されています。
エンド・ツー・エンドのモデル開発と実装のためのeIQ Toolkit - eIQ Workflow Toolは、データ・キュレーション、モデル・トレーニング、量子化と枝狩り、検証、ターゲット・プロファイリング、モデル展開をサポートします。
ドキュメントとビデオ | 説明 |
---|---|
AN12900 CAAMおよびMenderを使用したLinuxまたはSWアップデート向けのセキュアなOver-the-Airプロトタイプ |
特にi.MX 8M/MMを対象とした、Linuxイメージ向けセキュアOTAのプロトタイプの実装について説明します |
AN12921 i.MXへのGoogle Cast認証アスペクトの実装 |
このアプリケーション・ノートでは、Google Voice Assistant (GVA) およびCast for Audio (C4A) に安全面で必要とされるセキュリティ・プロパティ、およびNXPのGVA/C4Aリファレンス・プラットフォームへのそれらの実装について詳しく説明しています |
Linuxホスト・マシンのコマンド・プロンプトで、次のコマンドを実行してポート番号を確認します。
$ ls /dev/ttyUSB*
数字の小さい方がArm® Cortex®-A35コアの番号、大きい方がArm® Cortex®-M4コアの番号です。
次のコマンドを使用して、シリアル通信プログラム(例:minicom
)をインストールし、実行します。
$ sudo apt-get install minicom
$ sudo minicom /dev/ttyUSB* -s
i.MX 8QuadXPlusのFTDI USBシリアル・チップは、2つのシリアル・ポートを列挙します。これらのポートをCOM9
、COM10
とします。小さい番号のポートCOM9
はArm® Cortex®-A35コアからのシリアル・コンソール通信用で、大きい番号のポートCOM10
はArm® Cortex®-M4コア用です。Serial-to-USBドライバは、FTDチップ・ドライバから入手できます
注:i.MXボードの仮想COMポートのポート番号を確認するには、Windowsのデバイス・マネージャを開き、[ポート (COMとLPT)]でUSBシリアル・ポートを探します
オープン・ソースのターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。
COM
ポート番号を使用して、シリアル・ポートをボーレート115200
、8
データ・ビット、パリティなし、1
ストップ・ビットに設定します。この設定は[Setup(セットアップ)]>[Serial Port(シリアル・ポート)]から行うことができます。 i.MX 8QuadXPlusのFTDI USBシリアル・チップは、2つのシリアル・ポートを列挙します。これらのポートをCOM9
、COM10
とします。小さい番号のポート (COM9
) はArm® Cortex®-A7からのシリアル・コンソール通信用で、大きい番号のポート (COM10
) はArm Cortex-M4用です。Serial-to-USBドライバは、FTDチップ・ドライバから入手できます
注:i.MXボードの仮想COMポートのポート番号を確認するには、Windowsのデバイス・マネージャを開き、[ポート (COMとLPT)]でUSBシリアル・ポートを探します
PuTTYは、広く利用されているターミナル・エミュレーション・アプリケーションです。このプログラムは、NXP開発プラットフォームの仮想シリアル・ポートから送信された情報を表示します。
COM
ポート番号を入力します。ボーレートもあわせて指定します。今回は「115200
」を入力します。COM
ポートが入力されていれば、ターミナル・ウィンドウが開きます。設定が正しくない場合は、アラートが表示されます。
お使いのボードは、下の図のような箱に入っていましたか?
問題ありません。ボードのパッケージングが古いだけで、フラッシュ・メモリには別のクイック・スタート・デモが搭載されています。
RGB LEDが、赤色と緑色で交互に切り替わるはずです。他に問題がなければ、次のステップに進んでください。
次のステップに進み、別のサンプル・アプリケーションを実行してみてください。それでも問題が解決しない場合は、NXPコミュニティを通じてお問い合わせください。
次の段階に進むために、以下で適切な課題を見つけましょう。不明な点がある場合は、NXPサポートにお問い合わせください。
トレーニング | 説明 |
---|---|
AN12770 i.MX 8X C0移行ガイド(i.MX 8X B0からi.MX 8X C0への移行) | このアプリケーション・ノートでは、i.MX 8X B0からi.MX 8X C0に移行する際に考慮すべき主な事項について説明しています。これには、i.MX 8QuadXPlus、i.MX 8DualXPlus、i.MX 8DualXも含まれています。 |
AN13273 i.MX 8QuadXPlus/8DualXPlus/DualXの製品寿命 | 認定プロセスで使用された基準に基づく、i.MX 8QuadXPlus/8DualXPlus/8DualXアプリケーション・プロセッサの推定製品寿命を記載しています。 |
i.MX 8Xトレーニング | この製品に関するNXPのオンデマンド・トレーニング、ハウツー・ビデオ、およびウェビナーの全リスト。 |
NXPのいずれかのコミュニティ・サイトで、他のエンジニアとつながり、i.MX8Xを使用した設計に関する専門的なアドバイスを受けることができます。
ソフトウェア・フォーラム