Linuxビルド編
組み込みLinuxが初めてでも、i.MX 6SoloXでLinuxを動かせます。Linuxパッケージ「YOCTO」を使ったちょっといつもと違うビルド方法も体験できます。
組み込みLinuxが初めてでも、i.MX 6SoloXでLinuxを動かせます。Linuxパッケージ「YOCTO」を使ったちょっといつもと違うビルド方法も体験できます。
PMUに関連するレジスタは、ユーザモードでのアクセスは禁止されていますので、PMUSERENR(ユーザイネーブルレジスタ)を特権モードでユーザモードアクセス許可を設定します。PMUSERENRについては、 後述の該当項目を参照ください。
NXPのi.MX 6SoloXは、Cortex-A9とCortex-M4のヘテロ構成SoCです。この記事では、組み込みOSの代表として、Cortex-A9にYocto Linuxを実装し、Cortex-M4にはMQX(RTOS)を実装し、LinuxとRTOSの共存するシステムの構築方法を紹介します。また、Linuxのカーネルからの構築方法や、コア間通信、NEONによるG-Streamアプリ(ソフトウェアビデオデコーダー)などの実装方法も併せて解説します。
TrustZoneはCortex-Aシリーズの拡張機能で、大規模OSやアプリケーションが動作するノーマルワールドとセキュリティ関連が動作するセキュアワールドを導入しています。TrustZoneでは、ノーマルワールドメモリ空間とセキュアワールドメモリ空間の分離が可能です。
NEONコプロセッサは、リセット時に無効化されるため、初期化処理でアクセス権設定と稼働設定が必要です。NEONコプロセッサが無効状態でNEON命令を実行した場合、「未定義命令例外」が発生します。
パイオニアは、同社の海外向けカーナビ製品4 機種、車載DVD AV 製品1 機種、海外・国内向けAV 製品1 機種のメイン・プロセッサとして、フリースケールの「i.MX 6DualLiteプロセッサ」および「i.MX 6Soloプロセッサ」を採用した。
プロセッサ機能のキャッシュやMMUなどの設定はコプロセッサで行うため、コプロセッサレジスタを理解しなければなりません。コプロセッサは、メモリ空間に配置されていないため、専用命令を使用し、読み込みおよび書き込みを行います。
データキャッシュはMMUを有効にしないと使用できません。MMUを搭載するArmプロセッサを使用する場合、メモリタイプ・キャッシュ・アクセス権の設定はMMUで行いますので、設定を理解しなければなりません。
プロセッサコアは、コアクロック速度でライトバッファに書き込めるので、バスインターフェースユニットへの書き込み待機は発生しません。ライトバッファに空きがない場合は、空きができるまでプロセッサコアは待機状態になります。