i.MX 8M Plus EVKのスタート・ガイド

最終更新日時: 2021-02-10 13:28:00サポート i.MX 8M Plus評価キット

1. パッケージの内容

次のセクションでは、i.MX 8M Plus EVKをブートする手順について説明します。

開発キットの内容:

  • i.MX 8M Plus EVKボード
  • 電源:USB Type C 45 W給電、5 V/3 A、9 V/3 A、15 V/3 A、20 V/2.25 Aをサポート
  • ケーブル:アセンブリ、USB 3.0、Type-CオスからType-Aオス
  • ケーブル:アセンブリ、USB 2.0、Type-AオスからMicro-Bオス
  • アダプタ: USB 3.0、Type-CオスからType-A メス
  • ソフトウェア:eMMCでプログラムされたLinux BSPイメージ
  • クイック・スタート・ガイド

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

1.1 ボードの概要

i.MX-8M-Plus EVK-TOP

i.MX-8M-Plus EVK-TOP

i.MX-8M-Plus-EVK-Underside

i.MX-8M-Plus-EVK-Underside

1.2 eMMCからのブート

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

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

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

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

4つのUART接続がホスト・コンピュータに表示されます。3番目のポートがA53コア用、4番目のポートがM7コアのシステム・デバッグ用です。

ターミナル・アプリケーションに慣れていない場合は、ステップ1.4に進む前に、次のいずれかのチュートリアルを参照してください。MinicomチュートリアルTera TermチュートリアルPuTTYチュートリアル

1.4 HDMIケーブルの接続

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

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

ブート・シーケンスの詳細は、i.MX 8M Plusリファレンス・マニュアルに記載されています。つまり、i.MXボードのブート・モードは、ブート設定スイッチによって制御されます。

これらのスイッチは、ブート・メディア(ボードに応じて、SDカード、eMMC、またはNAND)、シリアル・ダウンロード・プロトコル・モード (SDP)、またはeFusesの設定値を選択します。

また、SDPはブート・メディアのフォールバックとしても機能します。つまり、SDカードからブートするようにスイッチが設定されていてSDカード・スロットが空の場合、またはSDカードのバイナリ・コンテンツがブート可能でない場合は、ブート・シーケンスはSDPブートに切り替わります。

i.MX-8M-Plus EVK-TOP

次の表は、i.MX 8M Plus EVKボードのブート・スイッチの設定の一覧です。同じ情報は、i.MX 8M Plusリファレンス・マニュアルおよびスイッチ近くのボード上のシルクスクリーンにも記載されています。

表1. i.MX 8M Plus EVKで利用可能なブート・モード

ブート・メディア SW1101 [D1-D4]
ヒューズからのブート 0000
シリアル・ダウンロード 0001
eMMC/SDHC3 0010
MicroSD/SDHC2 0011
NAND 256ページ 0100
NAND 512ページ 0101
QSPI 3B読み出し 0110
ECSPIフラッシュ 1000
無限ループ 1110

1.6 電源の接続

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

スイッチ (SW3) を使用してボードの電源を入れます。

プロセッサがオンチップROMコードから実行を開始します。デフォルトのブート・スイッチ設定では、このコードにより、ブータブル・イメージが格納されているメディアを指定するヒューズが読み取られます。ブータブル・イメージが見つかると、U-Bootの実行が自動的に開始されます。

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

これでLinuxのブートは完了です。

ボードが起動すると、モニタの左上隅に4羽のペンギンが表示され、左上にLinuxターミナルのアイコン、右上にタイマが表示されます。これで準備が完了しました。

2. 組込みLinux®

このセクションは、ボードにLinuxオペレーティング・システムをロードする場合にのみ適用されます。

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

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

2.1 概要

i.MXボード上でLinux OSカーネルがブートできるようになる前に、Linuxカーネルがブート・デバイス(SDカード、eMMCなど)にロードされ、そのデバイスをブートするようにブート・スイッチが設定されます。

各種のボードやブート・デバイス用のLinux BSPイメージをダウンロードするには、さまざまな方法があります。

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

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

i.MX 8M Plus EVK用の最新のビルド済みイメージは、Linuxのダウンロード・ページでLinuxの最新バージョンの項目から入手できます。

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

より柔軟性が必要な場合は、SDカードに個々のコンポーネント(ブート・ローダ、カーネル、dtbファイル、rootfsファイル)を1つずつロードするか、*wicイメージをロードして個々の部分を特定のコンポーネントで上書きします。

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

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

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

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

3. 組込みAndroid

このセクションでは、i.MX 8M Plus EVKボードに組込みAndroidシステム・イメージをロードするブート・プロセスについて説明し、独自のシステム・イメージを作成するソフトウェア・コンポーネントのビルド方法も紹介します。Androidプラットフォームのビルドの詳細については、こちらのAndroidビルド・ガイドを参照してください。

現在のリリースには、デモ・イメージ、ソース・コード、ドキュメントが含まれています。これらは、i.MXアプリケーション・プロセッサ用のAndroid OSにも含まれています。

3.1 概要

開発システム上のストレージ・デバイス(MMC/SDまたはNAND)は、 i.MXブート・ローダを使用してプログラムする必要があります。ブート・プロセスでは、スイッチの設定に基づいて、どのストレージ・デバイスにアクセスするかを決定します。ブート・ローダがロードされて実行が開始されると、U-Boot環境空間が読み取られ、ブート・プロセスの実行方法が決定されます。

イメージは、ビルド済みのリリース・パッケージから取得することも、ソース・コードから作成することもできます。入手方法に関係なく、すべてのAndroidイメージには以下のコンポーネントが含まれます

  • U-Bootイメージ:u-boot.imx
  • ブート・イメージ:boot.img
  • Androidシステム・ルート・イメージ:system.img
  • リカバリ・ルート・イメージ:recovery.img

Android BSPの詳細については、Androidユーザー・ガイドを参照してください。

3.2 NXP Android BSPイメージのダウンロード

ビルド済みのNXP Androidデモ・イメージは、評価用の特定の機能を備えたデフォルトのシステムを提供します。システムを変更することなく、ユーザーはいくつかの基本的な操作を実行し、システムと対話しながらハードウェア・インターフェースをテストし、ユーザー空間でソフトウェア・アプリケーションを開発できます。

パッケージのビルド済みイメージは、ブート・デバイスごとに分類され、デバイス名のディレクトリに格納されます。最新のビルド済みイメージ・ファイルは、i.MXソフトウェアおよび開発ツールのAndroidのセクション、またはデモ・イメージのダウンロード・リンクにあります。

3.3 UUUを使用したNXP Android BSPイメージの書き込み

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

ボードの電源を切ります。

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

ホスト・マシンで使用されているOSに応じて、Android BSPイメージをSDカードに転送する方法は異なります。

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

ブート・シーケンスの詳細は、i.MX 8M Plusクイック・スタート・ガイドに記載されています。つまり、i.MXボードのブート・モードは、ブート設定スイッチによって制御されます。

これらのスイッチは、ブート・メディア(ボードに応じて、SDカード、eMMC、またはNAND)、シリアル・ダウンロード・プロトコル・モード (SDP)、またはeFusesの設定値を選択します。

また、SDPはブート・メディアのフォールバックとしても機能します。つまり、SDカードからブートするようにスイッチが設定されていてSDカード・スロットが空の場合、またはSDカードのバイナリ・コンテンツがブート可能でない場合は、ブート・シーケンスはSDPブートに切り替わります。

i.MX 8M Plus EVK Boot Switch Setup

i.MX 8M Plus EVK Boot Switch Setup

次の表は、i.MX 8M EVKボードのブート・スイッチの設定の一覧です。同じ情報は、i.MX 8M Plusクイック・スタート・ガイドおよびスイッチ近くのボード上のシルクスクリーンにも記載されています。

ブート・デバイス SW4-1 SW4-2 SW4-3 SW4-4
ヒューズからのブート 0 0 0 0
USBシリアル・ダウンロード・モード 0 0 0 1
USDHC3(eMMCブートのみ、SD3 8ビット)デフォルト 0 0 1 0
USDHC2(SDブートのみ、SD2) 0 0 1 1
8ビットNANDシングル・デバイス、256ページ 0 1 0 0
8ビットNANDシングル・デバイス、512ページ 0 1 0 1
QSPI 3B読み出し 0 1 1 0
QSPIハイパーフラッシュ3.3V 0 1 1 1
ecSPIブート 1 0 0 0

4. MCUXpresso SDK

MCUXpressoソフトウェア開発キット (MCUXpresso SDK) は、i.MX 8M Plus M7コアで実行される包括的なソフトウェア・ソース・コードを提供します。現時点でi.MX 8M PlusでCortex-M7を有効にしたくない場合は、このセクションをスキップできます。

4.1 概要

MCUXpresso SDKは、Cortex®-M7をスタンドアロンまたはAコアとともに使用する組込みアプリケーションの開発用に設計されています。MCUXpresso SDKは、ペリフェラル・ドライバに加えて、基本的なペリフェラルの使用例からデモ・アプリケーションまでをカバーする豊富なサンプル・アプリケーションのセットを提供します。MCUXpresso SDKには、RTOSカーネルとデバイス・スタック、および迅速な開発をサポートするさまざまなミドルウェアも含まれています。

このガイドでは、REL_2.9.0リリースで提供されているhello_world.binデモの実行方法について説明します。MCUXpresso SDKの詳細と、カスタム・デモの作成および展開方法については、MCUXpresso SDKのサイトをご覧ください。

4.2 U-Bootを使用したアプリケーションの実行

このセクションでは、SDカードとi.MXプロセッサ用のビルド済みU-Bootイメージを使用してアプリケーションを実行する方法について説明します。

  1. セクション2「組込みLinux」の手順に従い、i.MX 8M Plusプロセッサ用のLinux BSPパッケージからのビルド済みU-Boot + Linuxイメージを格納したSDカードを用意します。すでにSDカードにLinuxイメージをロードしている場合は、この手順をスキップできます。
  2. SDカードをホスト・コンピュータ(LinuxまたはWindows)に挿入し、アプリケーション・イメージ(hello_world.binなど)をSDカードのFATパーティションにコピーします。
  3. SDカードをPCから安全に取り外します。
  4. SDカードをターゲット・ボードに挿入します。デフォルトのブートSDスロットを使用していることを確認し、「ブート・スイッチの設定」を再確認してください。
  5. ボードのDEBUG UARTコネクタをUSBケーブルでPCに接続します。Windows OSはUSBドライバを自動的にインストールし、Ubuntu OSはシリアル・デバイスも検出します。

    シリアル通信アプリケーションの詳細については、「USBデバッグ・ケーブルの接続」セクションを参照してください。i.MX 8M Plus EVKボードの2番目に列挙されたシリアル・ポートの2番目のターミナルを開きます。

  6. これはCortex-M7のシリアル・コンソールです。速度を115200ビット/秒、8データ・ビット、1ストップ・ビット(115200、8N1)、パリティなしに設定します。
  7. ボードの電源を入れ、U-Bootのカウントダウンがゼロになる前に、任意のキーを押してブート・プロセスを停止します。最初のターミナルのU-Bootプロンプトで、次のコマンドを入力します。

    => fatload mmc 0:1 0x48000000 hello_world.bin
            
            => cp.b 0x48000000 0x7e0000 0x20000
            => bootaux 0x7e0000

    これらのコマンドは、SDカードの最初のパーティションにあるイメージ・ファイルをCortex-M7のTCMにコピーし、Cortex-M7のリセットを解除します。

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

ブート・シーケンスの詳細は、i.MX 8M Plusクイック・スタート・ガイドに記載されています。つまり、i.MXボードのブート・モードは、ブート設定スイッチによって制御されます。

これらのスイッチは、ブート・メディア(ボードに応じて、SDカード、eMMC、またはNAND)、シリアル・ダウンロード・プロトコル・モード (SDP)、またはeFusesの設定値を選択します。

また、SDPはブート・メディアのフォールバックとしても機能します。つまり、SDカードからブートするようにスイッチが設定されていてSDカード・スロットが空の場合、またはSDカードのバイナリ・コンテンツがブート可能でない場合は、ブート・シーケンスはSDPブートに切り替わります。

i.MX 8M Plus EVK Boot Switch Setup

i.MX 8M Plus EVK Boot Switch Setup

次の表は、i.MX 8M EVKボードのブート・スイッチの設定の一覧です。同じ情報は、i.MX 8M Plusクイック・スタート・ガイドおよびスイッチ近くのボード上のシルクスクリーンにも記載されています。

ブート・デバイス SW4-1 SW4-2 SW4-3 SW4-4
ヒューズからのブート 0 0 0 0
USBシリアル・ダウンロード・モード 0 0 0 1
USDHC3(eMMCブートのみ、SD3 8ビット)デフォルト 0 0 1 0
USDHC2(SDブートのみ、SD2) 0 0 1 1
8ビットNANDシングル・デバイス、256ページ 0 1 0 0
8ビットNANDシングル・デバイス、512ページ 0 1 0 1
QSPI 3B読み出し 0 1 1 0
QSPIハイパーフラッシュ3.3V 0 1 1 1
ecSPIブート 1 0 0 0

セキュリティと整合性

ドキュメントとビデオ 説明
AN12714 CAAMセキュリティ・キーを使用したi.MX暗号化ストレージ   このアプリケーション・ノートでは、i.MXの暗号化アクセラレータおよび保証モジュール (CAAM) が提供するセキュリティ・キー機能を利用して、DM-Cryptによる透過的ストレージ暗号化をブロック・レベルで実行する手順について説明します。
AN12838 CAAMセキュリティ・キーを使用した公開鍵暗号の強化   このアプリケーション・ノートでは、i.MXアプリケーション・プロセッサで提供されているBlack Key機能に基づいた公開鍵暗号化方式について説明します。
AN12632 i.MX 8Mおよびi.MX 8MMでの拡張OpenSSL   このアプリケーション・ノートでは、暗号化アクセラレータおよび保証モジュール (CAAM) による高速化OP-TEE OSのサポートをOpenSSLに追加する方法について説明します。結果として、OP-TEEを介して安全な方法で暗号アルゴリズムを高速化できる拡張されたOpenSSLが得られます。
Trusted Execution Environment:i.MXプロセッサにおけるOP-TEEのスタート・ガイド TEEの概要、サンプルの使用例、およびOP-TEEによるi.MXハードウェアのセキュリティ機能の活用方法について説明します。
エッジをセキュアに:製造の保護:非セキュアな環境における機密データのプロビジョニング   このウェビナーでは、製造の保護機能の概要、およびこの機能を使用して機密データをセキュアに転送およびインストールする方法について説明します。
AN4581 HABv4対応デバイスでの i.MXセキュア・ブート このアプリケーション・ノートでは、HABv4を含む、i.MXアプリケーション・プロセッサ向けセキュア・ブートのリファレンスを提供し、署名付きイメージの生成やICをセキュアに動作させる設定の例を示します。
AN12812 ハードウェア・セキュリティ・モジュールを備えたコード署名ツールの使用 このドキュメントでは、ユーザーがバックエンドのハードウェア・セキュリティ・モジュール (HSM) を備えたコード署名ツール (CST) を効果的に使用するために必要な情報を提供しています。
i.MXのセキュリティ機能と関連資料 i.MXアプリケーション・プロセッサのさまざまなセキュリティ面に焦点を当てたドキュメントとコミュニティ・ポストを集約しています。

CAAMモジュールの例

i.MX 8M Plus EVKボードには、暗号化と復号化のプロセスをハードウェアで高速化するために、CryptoDevを介して使用できる暗号化アクセラレーションおよび保証モジュール (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: 43389139 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 64 size blocks: 28788614 aes-128-cbc's in 3.00s
  Doing aes-128-cbc for 3s on 256 size blocks: 11766741 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 1024 size blocks: 3674139 aes-128-cbc's in 2.99s
  Doing aes-128-cbc for 3s on 8192 size blocks: 495157 aes-128-cbc's in 3.00s
  OpenSSL 1.0.2p 14 Aug 2018
  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: 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 193627.86k 513839.78k 837089.96k 1048974.64k 1130986.42k
  

ソリューション:

ドキュメント「AN12838 CAAMセキュリティ・キーを使用した公開鍵暗号の強化」のセクション5.2.1および5.2.2で、使用方法の詳細について説明しています。

有線通信

有線通信

ドキュメントとビデオ 説明
AN12409 i.MX6/7/8シリーズUSB認証ガイド この文書は、i.MX6/7/8シリーズのアプリケーション・プロセッサ・ファミリでUSB認証テストを実施する方法を説明することを目的としたものです。これには、手順の説明やUSBコンプライアンス・テストのツールおよび基準が含まれます。
AN13164 i.MX8MP PCIe帯域幅の分析 このドキュメントでは、プロトコル・オーバーヘッド後にGen3 x1付近のライン・レート帯域幅 (8 Gbits/s) を実現できるケースについてより明確に理解できるよう、i.MX 8M PlusでのPCIeのさまざまな使用シナリオを提示しています。
AN13210 LinuxでのFlexCANの使用方法 i.MX8MPは、リアルタイム・ドメインまたはLinuxドメインからプログラム可能な2つのFlexCAN FDインターフェースを提供します。このドキュメントでは、LinuxでFlexCANがどのように使用されるのかを明確に理解できるよう、i.MX 8M PlusでのFlexCANのさまざまな使用シナリオを紹介しています。

i.MXボード上でLinuxが動作している場合、i.MX SoCが提供する特別な機能を評価できます。このチュートリアルでは、i.MX 8M Plus EVKを使用してLinuxでインターネットに接続する手順を説明します。

  1. ボードのRJ-45コネクタにイーサネット・ケーブルを接続します
  2. ボードをブートし、Linuxプロンプトが表示されるまで待ちます
  3. Linuxプロンプトで、次のコマンドを入力します

    # ifconfig eth0
  4. 機能を確認するために、任意のサイトに対してpingを実行します
 # 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 Quad EVKにおけるNXPベースのワイヤレス・モジュールの機能設定ガイド このドキュメントでは、Azurewave AW-CM358MA (88W8987) およびAzurewave AW-CM276MA (88W8997) ワイヤレス・モジュールを搭載したi.MX 8M Quad EVKでのWi-FiおよびBluetooth®の機能と構成について記載しています。Wi-FiおよびBluetoothインターフェースの初期化と設定について取り上げています。

パワーマネジメント

PCA9450は 、i.MX 8M Plus向けに最適化されたNXPのパワー・マネジメントICです。

ドキュメントとビデオ 説明
AN13054 i.MX 8M Plusの消費電力の測定 このアプリケーション・ノートでは、NXP EVKプラットフォームで実施されるi.MX 8M Plusアプリケーション・プロセッサの電流ドレイン測定について、いくつかの使用例を用いて説明しています。

低消費電力モードへのサスペンドの例

i.MXボード上でLinuxが動作している場合、i.MX SoCが提供する特別な機能を評価できます。この例では、低消費電力モードへのサスペンドと、通常の動作を再開する方法を示します。

次のコマンドを入力して、ボードのウェイクアップ・ソースとしてシリアルTTYを有効にします。

パス:

# echo enabled > /sys/class/tty/ttymxc0/power/wakeup

次のコマンドを入力して、Suspend-To-RAMモードに入ります。

# echo enabled > /sys/class/tty/ttymxc0/power/wakeup

次のコマンドを入力して、Suspend-To-RAMモードに入ります。

# echo mem > /sys/power/state
PM: suspend entry (deep)
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.001 seconds) done.
OOM killer disabled.
Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done.
Suspending console(s) (use no_console_suspend to debug)

SW01スイッチを押して、ボードをウェイクアップします。ターミナルには次のメッセージが表示されます。

 HIFsuspendwow TODO
PM: suspend devices took 0.112 seconds
Disabling non-boot CPUs ...
CPU1: shutdown
psci: CPU1 killed.                                    
CPU2: shutdown                                    
psci: CPU2 killed.                                    
CPU3: shutdown                                    
psci: Retrying again to check for CPU kill                                    
psci: CPU3 killed.                                    
Enabling non-boot CPUs ...                                    
Detected VIPT I-cache on CPU1                                    
GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000                                    
CPU1: Booted secondary processor [410fd034]                                    
cache: parent cpu1 should not be sleeping                                    
CPU1 is up                                    
Detected VIPT I-cache on CPU2                                    
GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000                                    
CPU2: Booted secondary processor [410fd034]                                   
cache: parent cpu2 should not be sleeping                                    
CPU2 is up
Detected VIPT I-cache on CPU3
GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
CPU3: Booted secondary processor [410fd034]
cache: parent cpu3 should not be sleeping
CPU3 is up
PM: resume devices took 0.028 seconds
OOM killer enabled.
Restarting tasks ... done.
PM: suspend exit

オーディオ

ドキュメントとビデオ 説明
i.MX 8プロセッサ向けDSP Concepts製品 i.MX 8Mファミリ向けDSP Conceptsオーディオ・プラットフォーム製品について紹介しています。
AN12195 i.MX8Mへの低消費電力オーディオの実装 このドキュメントでは、i.MX 8Mにおける低消費電力オーディオ・アプリケーション設計について説明しています。

シンプルなオーディオの例

i.MX 8M Plus EVKボードのオーディオ・ジャックにイヤホンを接続します。

イヤホンにマイク機能(4つの接点を持つTRRS)が付いている場合は、マイク・ジャックを最後まで押し込まないでください。1つの接点リングを外側に残します。

 #aplay -1

  **** List of PLAYBACK Hardware Devices ****
  
  card 0: imxspdif [imx-spdif], device 0: S/PDIF PCM snd-soc-dummy-dai-0 [S/PDIF PCM snd-soc-dummy-dai-0]
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  card 2: wm8524audio [wm8524-audio], device 0: HiFi wm8524-hifi-0 
  [] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  card 2: wm8524audio [wm8524-audio], device 1: HiFi-ASRC-FE (*) 
  [] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
  # gst-launch-1.0 audiotestsrc ! alsasink device=plughw:2 
  Setting pipeline to PAUSED ... 
  Pipeline is PREROLLING ... 
  Redistribute latency... 
  Pipeline is PREROLLED ... 
  Setting pipeline to PLAYING ... 
  
  New clock: GetAudioSinkClock
  

イヤホンで音が聞こえるはずです。

音を確認したら、キーボードの [Ctrl+C] を押してコマンド・ラインを終了します。

ビデオ・オーディオのデコーダの例

この例は、ビデオ・ファイルからオーディオだけをデコードする方法を説明します。SDカードのrootfsパーティションの/home/root/にビデオ・ファイルをコピーし、SDカードからボードをブートして、次のコマンドを実行します。

注:Big Buck Bunnyのサイトから、例で使用されているファイルを無料で入手できます。

# gplay-1.0 SampleVideo_1280x720_2mb.mp4

  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
                              
  codec_data=(buffer)014d401fffe10017674d401fda014016ec0440000003004000000c83c60ca801000468ef3c80
                              
  ------------------------
                              
  ====== 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:00:13/00:00:13]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 Plus EVKでのGStreamer version 1.0の使用方法について、詳細に説明しています。このガイドには、デコード、エンコード、カメラ、ビデオ合成、ビデオのスケーリングと回転などの例が含まれます。
NXP MCUと組込みウィザードを使用したリアルタイム・インダストリアルHMIシステムへのグラフィックスの実装 NXPはTARA Systemsと連携し、イネーブリング・ソフトウェア・テクノロジとして組込み型のウィザードを提供しています。
AN12189 i.MX 8M評価キット向けMX8-DSI-OLED1のクイック・スタート・ガイド このドキュメントでは、MX8-DSI-OLED1アクセサリ・カード、タッチ・スクリーン・サポート付きMIPI-DSIインターフェースOLEDディスプレイ・キット、およびi.MX 8M EVKの使用方法の概要を説明しています。
AN12188 i.MX 8M評価キット向けIMX-MIPI-HDMIのクイック・スタート・ガイド このドキュメントでは、i.MX 8M EVK、およびMIPI-DSI信号をHDMI信号に変換するIMX-MIPI-HDMIアクセサリ・カードの使用方法の概要を説明しています。
AN12187 i.MX 8M評価キット向けMINISASTOCSIのクイック・スタート・ガイド このドキュメントでは、i.MX 8M EVK、およびOmniVisionチップ・セットOV5640をベースにしたMIPI-CSIインターフェース・カメラ・キットであるMINISASTOCSIアクセサリ・カードの導入方法について簡単に説明します。

カメラ・インターフェース

カメラ・インターフェース

ドキュメントとビデオ 説明
i.MX 8カメラのユース・ケース i.MX 8 MIPI CSIのユース・ケース、Advanced GStreamerカメラのユース・ケース、i.MX 8M Plus EVKでサポートされている利用可能なカメラとドータ・カード、互換性のあるデバイス・ツリー (DTS) ファイル、およびさまざまなカメラ・オプションを有効化する方法について詳細に説明しています。
i.MX 8 GStreamerユーザー・ガイド i.MX 8M Plus EVKでのGStreamer version 1.0の使用方法について、詳細に説明しています。これには、デコード、エンコード、カメラ、ビデオ合成、ビデオのスケーリングと回転などの例が含まれます。
AN12187 i.MX 8M評価キット向けMINISASTOCSIのクイック・スタート・ガイド このドキュメントでは、i.MX 8M EVK、およびOmniVisionチップ・セットOV5640をベースにしたMIPI-CSIインターフェース・カメラ・キットであるMINISASTOCSIアクセサリ・カードの導入方法について簡単に説明します。

機械学習

機械学習 (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ソフトウェア開発環境の使用に関する一連のステップ・バイ・ステップ・チュートリアル。
AN12964 i.MX 8M PlusにおけるNPUのウォームアップ時間 このドキュメントは、NPUのウォームアップ時間が全体的な性能に与える影響を明確にすることを目的としています。

ツールとリファレンス

DeepViewRT®を使用したeIQ推論 - EdgeVerse MCUやマイクロプロセッサでの機械学習アプリケーション向けにプラットフォームが最適化された、独自のランタイム推論エンジン。

TensorFlow® Liteライブラリを使用したeIQ®推論 - TensorFlow Liteは、低レイテンシかつ小フットプリントの推論エンジンで、Eigenライブラリ、事前融合されたアクティベーション、量子化されたカーネルなどの技術が使用されています。

デバイス管理とセキュアOTA

デバイス管理とセキュアOTA

ドキュメントとビデオ 説明
AN12900 CAAMおよびMenderを使用したLinuxまたはSWアップデート向けのセキュアなOver-the-Airプロトタイプ   特にi.MX 8M/MMを対象とした、Linuxイメージ向けセキュアOTAのプロトタイプの実装について説明します。
Ubuntu搭載i.MX8MMのDocker   このドキュメントでは、ホストPCでubuntu rootfsを作成し、任意のARM 64プラットフォームにDockerをインストールする方法について説明しています。

Minicomチュートリアル

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

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

 $ ls /dev/ttyUSB* 

数字の小さい方がArm® Cortex®-A53コアの番号、大きい方がArm® Cortex®-M4コアの番号です。

Minicom

次のコマンドを使用して、シリアル通信プログラム(例:minicom)をインストールし、実行します。

  1. Ubuntuパッケージ・マネージャを使用してMinicomをインストールします。
     $ sudo apt-get install minicom 
  2. 前に確認したポート番号を使用して、コンソール・ウィンドウでMinicomを起動します。
     $ sudo minicom /dev/ttyUSB* -s 
  3. Minicomを図3のように設定しますGS-MCIMX7SABRE-MINICOM
  4. 次のステップは、HDMIケーブルの接続です。

Tera Termチュートリアル

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

i.MX8MQuadのFTDI USBシリアル・チップは、2つのシリアル・ポートを列挙します。これらのポートをCOM9COM10とします。小さい番号のポート (COM9) はArm® Cortex®-A53からのシリアル・コンソール通信用で、大きい番号のポート (COM10) はArm® Cortex®-M4コア用です。Serial-to-USBドライバは、http://www.ftdichip.com/Drivers/VCP.htmから入手できます。

:i.MXボードの仮想COMポートのポート番号を確認するには、Windowsのデバイス・マネージャを開き、[ポート (COMとLPT)]でUSBシリアル・ポートを探します

Tera Term

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

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

PuTTYチュートリアル

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

i.MX8MQuadのFTDI USBシリアル・チップは、2つのシリアル・ポートを列挙します。これらのポートをCOM9COM10とします。小さい番号のポート (COM9) はArm® Cortex®-A53からのシリアル・コンソール通信用で、大きい番号のポート (COM10) はArm® Cortex®-M4用です。Serial-to-USBドライバは、http://www.ftdichip.com/Drivers/VCP.htmから入手できます。

:i.MXボードの仮想COMポートのポート番号を確認するには、Windowsのデバイス・マネージャを開き、[ポート (COMとLPT)]でUSBシリアル・ポートを探します

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

  • PuTTYをダウンロードします。ダウンロードしたら、インストーラを実行し、このウェブページに戻って手順を続行します。
  • 選択したダウンロードのタイプに応じて、ダウンロードした実行ファイルをダブルクリックするか、[Start(スタート)]メニューから選択して、PuTTYを起動します。
  • 起動後に表示されるウィンドウで設定を行います。[Serial(シリアル)]ラジオ・ボタンを選択し、前に確認したCOMポート番号を入力します。ボーレートもあわせて指定します。今回は「115200」を入力します。

  • PUTTY-Configuration
  • [Open(開く)]をクリックして、シリアル接続を確立します。ボードが接続されていて、正しいCOMポートが入力されていれば、ターミナル・ウィンドウが開きます。設定が正しくない場合は、アラートが表示されます。
  • 次のステップは、HDMIケーブルの接続です。

サポート

トレーニング

次の段階に進むために、以下で適切な課題を見つけましょう。不明な点がある場合は、NXPサポートにお問い合わせください。

トレーニング 説明
I.MX 8M Plusトレーニング この製品に関するNXPのオンデマンド・トレーニング、ハウツー・ビデオ、およびウェビナーの全リスト。

フォーラム

NXPのいずれかのコミュニティ・サイトで、他のエンジニアとつながり、i.MX 8M Plusを使用した設計に関する専門的なアドバイスを受けることができます。

製品フォーラム:

ソフトウェア・フォーラム: