1352820_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1352820_ja-JP

1352820_ja-JP

Cortex M4をi.MX8QXPマルチセンサリー・イネーブルメント・キットで有効にする方法

i.MX 8QuadXPlus Multisensory Enablement Kit (MEK) は、Cortex A-35 + Cortex-M4コアをベースとしたNXPの開発プラットフォームです。グラフィックス、ビデオ、画像処理、オーディオ、音声機能をサポートする高度な統合機能を備えたi.MX 8Xプロセッサファミリは、安全性認証可能で効率的なパフォーマンス要件に最適です。

このチュートリアルでは、MCUXpresso SDKパッケージを使用してCortex-M4を有効化し、ネットワークからバイナリをロードする方法を示します。

:imx-mkimageユーティリティを使用して、SCFWからCortex-M4イメージをロードすることも可能です。しかし、今度はMCUXpressoに焦点を当てましょう。

マシンのセットアップ


  • ホストマシンにCMakeをインストールします。

$ sudo apt-get install cmake

  • armgccツールチェーンをダウンロードし、場所をARMGCC_DIRとしてエクスポートしてください。

$ export ARMGCC_DIR=/gcc-arm-none-eabi-9-2020q2/

:ARMGCC_DIR変数は、コンパイルに使用するターミナルでエクスポートする必要があります。

ホストマシンにTFTPサーバーをセットアップするには:

ホストPCをTFTP用に設定するパーマリンク

 

最初のステップは、TFTPの前提条件パッケージをすべてインストールすることです。

$ sudo apt-get install xinetd tftpd tftp

任意の場所に、root所有者とすべてのユーザーに対する「rwx」権限を持つTFTPフォルダを作成してください。

$ sudo mkdir /tftpboot
$ sudo chmod –R 777 /tftpboot
$ sudo chown –R root /tftpboot

次の内容でTFTPの設定ファイルを作成してください。(server_argsパラメータは、上記で作成したフォルダと一致する必要があります)

$ cat /etc/xinetd.d/tftp

service tftp
{
	protocol	= udp
	port		= 69
	socket_type	= dgram
	wait		= yes
	user		= root
	server		= /usr/sbin/in.tftpd
	server_args	= -s /tftpboot
	disable		= no
}

xinetdサービスを再起動してください。

$ sudo /etc/init.d/xinetd restart

TFTPフォルダに任意のファイルを配置し、U-Bootを介してロードできます。また、ビルディングディレクトリからシンボリックリンクを作成することで、zImageファイルやdtbファイルを毎回コピー&ペーストする手間を省くことができます。

ホストPCをNFS用に設定するパーマリンク

 

NFSに必要なすべてのパッケージをインストールしてください。

$ sudo apt-get install nfs-kernel-server

rootfsを配置するフォルダーを作成してください。

$ mkdir /tftpboot/rfs

/etc/exportsファイルの末尾に次の行を追加してください。

/tftpboot/rfs *(rw,no_root_squash,no_subtree_check)

NFSサービスを再起動してください。

$ sudo service nfs-kernel-server restart

rootfsを配置するか、NFSフォルダへのシンボリックリンクを作成してください。


 SDKのダウンロード

次の手順に従ってMCUXpressoをダウンロードしてください。

  • 開発ボードの選択」をクリックします。
  • デバイス、ボード、またはキットを選択」からMEK-MIMX8QXを選択し、右側にある「MCUXpresso SDKのビルド」をクリックします。
  • Host OS」としてLinuxを選択し、「Toolchain/IDE」としてGCC ARM Embeddedを選択します。
  • 「FreeRTOS」と必要なミドルウェアをすべて追加し、「ビルドをリクエスト」を押してください。
  • SDKがパッケージをビルドしてダウンロードするのを待ちます。

イメージを構築する

SDKパッケージで利用できるすべてのデモとコード例は、< > /boards/mekmimx8qx/ディレクトリにあります。このチュートリアルでは、hello_worldデモをビルドしてフラッシュする方法を示しますが、同様の手順はSDK上の任意の例(デモ、ドライバー、マルチコアなど)に適用できます。

  • デモをビルドするには、デモディレクトリの下にあるarmgccフォルダに入り、ARMGCC_DIR変数が正しく設定されていることを確認してください。

$ cd ~/SDK_2.3.0_MEK-MIMX8QX/boards/mekmimx8qx/demo_apps/hello_world/armgcc

$ export ARMGCC_DIR=/gcc-arm-none-eabi-9-2020q2/

  • build_release.shスクリプトを実行してコードをビルドします。

$ ./build_release.sh

:必要であれば、chmod +x build_release.shを実行して、スクリプトの実行権限を付与してください。

  • これにより、M4バイナリ(hello_world.bin)が生成されます。releaseフォルダの下にあります。このイメージをホストPCの/tftpboot/ディレクトリにコピーしてください。

:この手順では、TCMで動作するM4イメージをビルドする方法を説明します。DDRからイメージを実行するには、build_ddr_release.shスクリプトを使用して、ddr_releaseフォルダの下にバイナリをビルドしてください。

イメージをフラッシュする

  • 2つのシリアルコンソールを開きます。1つはCortex-A35でLinuxを起動するための/dev/ttyUSB0用、もう1つはCortex-M4でSDKイメージを起動するための/dev/ttyUSB1用です。
  • A35コンソールで、U-Bootを搭載したSDカードを使用し、起動プロセスを停止して、以下のコマンドを入力し、M4バイナリをTCMにロードしてください。

=> dhcp

=> setenv serverip

=> tftp 0x88000000 hello_world.bin

=> dcache フラッシュ

=> bootaux 0x88000000

次に、M4コアがイメージを/dev/ttyUSB1コンソールにロードします。



LinuxYocto Project
Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 02:01 AM
Updated by: