MCIMX8QXP-CPUのスタート・ガイド

最終更新日時: 2019-03-20 09:34:00サポート i.MX 8QuadXPlus MEK

1. パッケージの内容

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

1.1 i.MX 8QuadPlus MEKの開梱

開発キットの内容:

  • スマート・デバイス向けi.MX 8QuadXPlus MEKボード
  • USBケーブル (micro B-標準A)
  • ケーブル・アセンブリ、USB 2.0 Type-Aオス、USB Type-Cオス、シールド、1 m
  • 12 V/8.3 Aユニバーサル電源
  • クイック・スタート・ガイド
  • オペレーティング・システムのブータブル・デモ・イメージを格納した8 GB SDカード

1.2 ボードの概要

IMX8QUADXPLUS-BOARD-TOP

IMX8QUADXPLUS-BOARD-TOP

IMX8QUADXPLUS-BOARD-BACK

IMX8QUADXPLUS-BOARD-BACK

1.3 SDカード (J12) の挿入

キットには、NXP Linuxのビルド済みバイナリ・デモ・イメージを格納したSDカードが含まれています。SDカード内部のバイナリを変更することなく、このSDカードからのブートにより、Linux上で他のアプリケーションをビルドするための特定の機能を備えたデフォルトのシステムが提供されます。このソフトウェアについては、次のセクションに記載されています。

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

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

ターミナル・アプリケーションの使用方法がわからない場合は、ホスト・マシンのオペレーティング・システムに応じて、次のいずれかのチュートリアルを試してください。

1.5 電源の接続

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

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

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

2. ビルドと実行

2.1 組込みLinux®

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

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

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

2.2 概要

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

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

このスタート・ガイドでは、Linux BSPイメージをSDカードに転送するいくつかの方法のみを示します。経験豊富なLinux開発者は、他のオプションを検討することもできます。

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

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

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

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

3.ソフトウェアの入手

3.1 組込みAndroid

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

現在のリリースには、デモ・イメージソース・コードドキュメントが含まれています。これらは、i.MXソフトウェアと開発ツールのAndroidのセクションにもあります。

3.2 概要

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

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

  • U-Bootイメージ:u-boot.imx

  • ブート・イメージ:boot.img

  • Androidシステム・ルート・イメージ:system.img

  • リカバリ・ルート・イメージ:recovery.img

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

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

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

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

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

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

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

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

4. MCUXpresso SDK

MCUXpressoソフトウェア開発キット (MCUXpresso SDK) は、i.MX 8QuadXPlus M4コアで実行される包括的なソフトウェア・ソース・コードを提供します。

現時点でi.MX 8QuadXPlusでCortex®-M4を有効にしたくない場合は、このセクションをスキップできます。

4.1 概要

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

ホスト・マシンで使用されているOSに応じて、デモの作成および展開の方法が異なります。詳細な手順については、以下のオプションを選択してください。

外部メモリ

外部メモリ

ドキュメントとビデオ 説明
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) を効果的に使用するために必要な情報を提供しています。

CAAMモジュールの例

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です。

p

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でインターネットに接続するには、次の手順に従います。

  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インターフェースの初期化と設定について取り上げています。

マルチコアおよびハードウェア・アクセラレーション

マルチコアおよびハードウェア・アクセラレーション

ドキュメントとビデオ 説明
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オーディオ・プラットフォーム製品について紹介しています。

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

このシンプルなオーディオの例は、audiotestsrcalsasinkの間のリンクを示しています。

最初に、[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カードからボードをブートして、次のコマンドを実行します。

デフォルトの出力デバイスはcs42888です。まず、次の手順に従って出力デバイスをwm8960に設定します。

  1. pulseAudioデーモンを起動します

    # pulseaudio --start
  2. wm8960のシンク番号を取得します

    # pacmd list-sinks
  3. ログによれば、wm8960はインデックス番号2にあります
  4. デフォルトのシンクを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 8 GStreamerユーザー・ガイド

i.MX 8M Nano EVKでのGStreamer version 1.0の使用方法について、詳細に説明しています。これには、デコード、エンコード、カメラ、ビデオ合成、ビデオのスケーリングと回転などの例が含まれます。

AN12187 i.MX 8M評価キット向けMINISASTOCSIのクイック・スタート・ガイド

このドキュメントでは、i.MX 8M EVK、およびOmniVisionチップ・セットOV5640をベースにしたMIPI-CSIインターフェース・カメラ・キットであるMINISASTOCSIアクセサリ・カードの導入方法について簡単に説明します。

機能安全

機能安全

ドキュメントとビデオ 説明
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は、データ・キュレーション、モデル・トレーニング、量子化と枝狩り、検証、ターゲット・プロファイリング、モデル展開をサポートします。

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

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

ドキュメントとビデオ 説明
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リファレンス・プラットフォームへのそれらの実装について詳しく説明しています

Minicomチュートリアル

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

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

$ ls /dev/ttyUSB*

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

Minicom

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

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

Tera Termチュートリアル

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

i.MX 8QuadXPlusのFTDI USBシリアル・チップは、2つのシリアル・ポートを列挙します。これらのポートをCOM9COM10とします。小さい番号のポートCOM9はArm® Cortex®-A35コアからのシリアル・コンソール通信用で、大きい番号のポートCOM10はArm® Cortex®-M4コア用です。Serial-to-USBドライバは、FTDチップ・ドライバから入手できます

Tera Term

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

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

PuTTYチュートリアル

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

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

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

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

サポート

トラブルシューティング

デモが機能しない場合

お使いのボードは、下の図のような箱に入っていましたか?

FRDM BOX

問題ありません。ボードのパッケージングが古いだけで、フラッシュ・メモリには別のクイック・スタート・デモが搭載されています。

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のオンデマンド・トレーニング、ハウツー・ビデオ、およびウェビナーの全リスト。