ハードウェア環境のセットアップ
- PC によっては、BIOS 設定画面で Above 4G Memory Assignment と Resizable BAR Support の設定が必要です。
- VCK190 プロジェクトをビルドします (VCK190 プロジェクトのビルド方法は、リファレンス デザインの readme.txt ファイルを参照してください)。Vivado ハードウェア マネージャーを使用して PDI ファイルをダウンロードし、PCIe リンク ステータスを確認します。
- ホスト側で、
lspci
コマンドを使用して BAR アドレスを取得します。次に、devmem
コマンドを使用して BAR 空間に対する読み出しと書き込みが可能なことを確認します。
ソフトウェア デバッグ
ホスト アプリケーションをコンパイルするには、いずれかのディレクトリを選択し、アプリケーション ソース コードをこのディレクトリに対して実行します。次に、x86 ホストで makefile を実行してアプリケーションをコンパイルします。
> make
すると、次の表に示す 3 つのオブジェクトが生成されます。
オブジェクト | 説明 |
---|---|
main | 128Mb フラッシュに対してプログラムとベリファイを実行します。 |
program_only | 128Mb フラッシュに対してプログラムを実行します。 |
debug | 128Mb フラッシュに対してプログラムを実行します。それと同時に、デバッグ スイッチを開いてすべてのデバッグ ログを表示します。 |
次に、ホスト上で実行ファイルを実行します。次の図に、64MB フラッシュに対するプログラムとベリファイのログを示します。プログラムするフラッシュのサイズを変更するには、ファイル xqspipsu.h でマクロ BOARD_BRAM_SIZE を変更します。
次の図に、64MB フラッシュに対するプログラムのログを示します。
性能
128MB のイメージをプログラムするのにかかる時間は、192 秒 (3 分 12 秒) です。次の表に示す 2 組の性能結果を比較すると、時間とプログラム サイズは比例の関係にあることがわかります。たとえば、 48s x 4 = 192s。
したがって、128MB フラッシュのプログラムには 32MB フラッシュのプログラムの 4 倍の時間がかかります。
プログラムにベリファイを追加すると、さらに時間がかかります。当然、ベリファイにかかる時間もプログラム サイズに比例して長くなります。
動作 | サイズ (MB) | 時間 (秒) | 説明 |
---|---|---|---|
プログラムのみ | 32 | 48 | フラッシュ ID の読み出し、フラッシュの消去、およびフラッシュの書き込み |
プログラムのみ | 64 | 96 | |
プログラムのみ | 128 | 192 | |
プログラム + ベリファイ | 16 | 107 |
フラッシュ ID の読み出し、フラッシュの消去、およびフラッシュの書き込み その後、フラッシュの内容の読み出しとコンペア |
プログラム + ベリファイ | 64 | 216 | |
プログラム + ベリファイ | 128 | 429 |
性能の最適化
QSPI コントローラーにアクセスするには、ソフトウェアから多数のレジスタ読み出しおよび書き込みを発行します。次の図に示すように、xqspipsu_hw.c にはレジスタ読み出しとレジスタ書き込みの 2 つの機能があります。
これら 2 つの関数は標準の devmem() 関数を元に作成したもので、これを手直しすることによって性能を最適化できます。