Cyclone V SoCの最大の特徴であるFPGAは、Linux動作中に動的にコンフィグレーションすることができます。実際に試してみましょう!
カーネルのコンフィグとビルド
カーネル コンフィグでFPGAドライバーが有効か確認して、コンパイルします。
# 環境変数の設定 $ . /opt/poky/2.1.1/environment-setup-cortexa8hf-neon-poky-linux-gnueabi # ACDS15.0.1_REL_GSRD_UPDATE1_PRのtagでブランチを作成 $ cd linux-socfpga.git $ git checkout -b ACDS15.0.1_REL_GSRD_UPDATE1_PR ACDS15.0.1_REL_GSRD_UPDATE1_PR # コンフィグでFPGAドライバーが有効か確認します。 # コンパイル $ make zImage # ビルドしたイメージをSDカードへコピー $ cp arch/arm/boot/zImage SDカードのFATパーティションのマウントポイント
FPGAのコンフィグレーション
FPGAのコンフィグレーションは、RBFファイルを使用します。また、カーネル モジュールがロードされているとコンフィグレーションできないため、モジュールをアンロードしておく必要があります。
# FPGAドライバー経由 $ dd if=RBFファイル of=/dev/fpga0 bs=1M
TRACE32経由 B:: JTAG.PROGRAM.ALTERA RBFファイル /IRPRE 10. /DRPRE 1. /IRPOST 4. /DRPOST 1. ※Cyclone V SoC Boardのジャンパー設定がデフォルトの場合
なお、JTAG 10pinにTRACE32を接続した場合は下記のコマンドを実行の上で、画像の通りの設定が必要です。
B:: SYSTEM.CONFIG
アルテラ社製 Cyclone V SoC搭載ボード
アルテラ SoCは、プロセッサ、ペリフェラル、およびメモリ・インタフェースで構成される Armベースのハード・プロセッサ・システム (HPS) と、カスタマイズ可能なFPGA ファブリックを広帯域幅インタコネクタ・バックボーンで統合した製品です。ハードIPには、PCI Express Gen2やマルチメモリポート、ECC、メモリ保護、高速シリアルトランシーバを搭載し、性能および消費電力の低減とプログラマブル・ロジックの柔軟性という特長を兼ね備えました。これまでCPUとFPGAで構成されたシステムボードサイズを大幅に削減することができます。今回の講座では、テラシック社製「DE0-Nano-SoC Kit/Atlas-SoC Kit」を使用します。
日本アルテラ株式会社
ローターバッハ社製 TRACE32
世界中で最も使われているハードウェアアシストデバッガTRACE32。ArmだけでなくNios IIはもちろん、70以上のプロセッサアーキテクチャをサポートしているのが、TRACE32。SMPシステムのマルチコア対応では、複数のコアを同時に制御し、参照コアを切り替えながらシームレスにデバッグを進めることができます。また、Linux等のSMP対応OSのデバッグをサポートする「OS認識機能」が標準装備されていることも特徴です。これにより、デバッグ対象のタスクが何れのコアに割り当てられているかを気にすることなく、ユーザ空間で動作しているプログラムのデバッグをスムーズに進めることができます。
日本ローターバッハ株式会社
組み込みLinux導入/開発支援サービス
組込みLinuxによりお客様の装置開発に新たな価値を提供します。
富士通コンピュータテクノロジーズ
こちらも是非
“もっと見る” 組み込みLinux|Cyclone編
Linuxカーネルのコンフィグレーションを変えてみよう!
Cyclone V SoCのカーネルは、すぐにPreempt RTが利用できるようになっているので、動かしてみましょう!まずは、カーネルのコンフィグレーションとビルドを行います。Linuxカーネル ソースをPreempt RTのブランチに切り替えて、コンフィグレーションを有効にして、再ビルドします。
Linuxでプロファイルしてみよう!
Linuxはperfやftrace等、プロファイルやトレースを採取するツールが揃っています。TRACE32を使ったプロファイルやトレースはArmコアの機能を使って本番に近い環境で実施することができるので、Linuxで精度の高い情報を得ることができます。
Linuxカーネルをコンパイルしてみよう!
linuxカーネルをコンパイルして、デバッグする方法を紹介します。Linuxカーネルは、必要な機能を選択するコンフィグを行ってから、コンパイルします。カーネル本体はzImage、カーネルが読み込むボード毎の設定がdtbです。