インテルのみ表示可能 — GUID: lzg1639044433734
Ixiasoft
インテルのみ表示可能 — GUID: lzg1639044433734
Ixiasoft
6. Video and Vision Processing IPのソフトウェア・プログラミング・モデル
Nios II SBT用のHALデバイスドライバー
ソフトウェア・コントロールとランタイム・リコンフィグレーション用に、インテルのビデオおよびビジョン・プロセシングIPには、関連するソフトウェア・ドライバーが含まれています。ビデオIPは、Nios II HALが提供する汎用デバイスモデルのいずれにも適合しません。したがって、ベアメタルドライバーは、コントロール・レジスターおよびステータスレジスターに対するいくつかの専用アクセサー関数による部分的なHALサポートのみを提供します。ビデオ機能には、汎用HAL APIまたはANSI C標準ライブラリーを介して間接的にアクセスできません。
アプリケーションでのこれらのドライバーの使用はオプションです。ドライバーを使用しない場合、インテルは、レジスター・ヘッダー・ファイルによって提供される定義を使用してIPコンポーネント (*_regs.h) を制御し、アプリケーションからランタイム・レジスターマップにアクセスするために名前のない定数やアドレスを使用しないことをお勧めします。
Nios® II開発ツールの使用を開始するには、Nios® II Software Developer's Handbookを参照してください。
共通ソフトウェアAPI
インテルのビデオおよびビジョン・プロセシングIPの多くは、同じ位置にある共通レジスターを持つレジスターマップを公開しています (Video and Vision Processing Registersを参照してください)。コード・フットプリントを制限するために、多くのビデオおよびビジョン・プロセシング・デバイス構造 (C構造体) には、共通のデバイス構造が含まれています。この共有ベースにより、一連の共通関数の定義で、それぞれアドレス0x0000および0x0004の VID_PID レジスターと VERSION レジスター、および0x0120から0x013Cの範囲の IMG_INFO レジスターのセットをクエリーできるようになります。
共通APIリファレンス
レジスター定義ヘッダーファイル: intel_vvp_core_regs.h
インクルード・ファイル: intel_vvp_core.h
名前 | 説明 |
---|---|
intel_vvp_core_init | インスタンスを初期化します。 |
intel_vvp_core_get_vendor_id | ベンダーIDを返します。 |
intel_vvp_core_get_product_id | 製品IDを返します。 |
intel_vvp_core_get_qpds_major | バージョンのメジャー番号を返します。 |
intel_vvp_core_get_qpds_update | バージョン更新番号を返します。 |
intel_vvp_core_get_qpds_patch | バージョンのパッチ番号を返します。 |
intel_vvp_core_get_register_map_version | レジスターマップのバージョン番号を返します。 |
intel_vvp_core_get_img_info_width | IMG_INFO_WIDTH レジスターから読み出した幅を返します。 |
intel_vvp_core_get_img_info_height | IMG_INFO_HEIGHT レジスターから読み出した高さを返します。 |
intel_vvp_core_get_img_info_interlace | IMG_INFO_INTERLACE レジスターから読み出したインターレース・ニブルを返します。 |
intel_vvp_core_get_img_info_colorspace | IMG_INFO_COLORSPACE レジスターから読み出したカラースペース・コードを返します。 |
intel_vvp_core_get_img_info_subsampling | IMG_INFO_SUBSAMPLING レジスターから読み出したサブサンプリング・コードを返します。 |
intel_vvp_core_get_img_info_cositing | IMG_INFO_COSITING レジスターから読み出したコサイティング・コードを返します。 |
intel_vvp_core_get_img_info_field_count | IMG_INFO_FIELD_COUNT レジスターから読み出したフィールド・カウント・コードを返します。 |
intel_vvp_core_set_img_info_width | IMG_INFO_WIDTH レジスターに幅を書き込みます。 |
intel_vvp_core_set_img_info_height | IMG_INFO_HEIGHT レジスターに高さを書き込みます。 |
intel_vvp_core_set_img_info_interlace | IMG_INFO_INTERLACE レジスターにインターレース・ニブルを書き込みます。 |
intel_vvp_core_set_img_info_colorspace | IMG_INFO_COLORSPACE レジスターにカラースペース・コードを書き込みます。 |
intel_vvp_core_set_img_info_subsampling | IMG_INFO_SUBSAMPLING レジスターにサブサンプリング・コードを書き込みます。 |
intel_vvp_core_set_img_info_cositing | IMG_INFO_COSITING レジスターにコサイティング・コードを書き込みます。 |
intel_vvp_core_init
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_init(intel_vvp_core_instance *instance, intel_vvp_core_base base, uint16_t expected_product_id);
- 説明
-
共通メンバーintel_vvp_core_instanceを初期化します。ベースアドレスで読み出されたベンダーIDまたは製品IDが一致しない場合、初期化は早期に停止します。それ以外の場合、関数はバージョン番号を読み出し、2番目のレジスターに格納します。
- 引数
-
インスタンス - intel_vvp_coreソフトウェア・ドライバー・インスタンス構造体へのポインター
ベース - レジスターマップのベースアドレス
expected_product_id – the expected product id
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
コアのベンダーIDがインテルFPGAベンダーID (0x6AF7) ではない場合は、kIntelVvpCoreVidErr
product_idが予想と一致しない場合は、kIntelVvpCorePidErr
インスタンスがヌルポインターの場合は、kIntelVvpCoreInstanceErr
intel_vvp_core_get_vendor_id
- プロトタイプ
-
uint16_t intel_vvp_core_get_vendor_id(void *instance);
- 説明
-
初期化されたインスタンスのvendor_idをクエリーします。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスのvendor_idフィールド
intel_vvp_core_get_product_id
- プロトタイプ
-
uint16_t intel_vvp_core_get_product_id(void *instance);
- 説明
-
初期化されたインスタンスのproduct _idをクエリーします。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスのproduct_idフィールド
intel_vvp_core_get_qpds_major
- プロトタイプ
-
uint8_t intel_vvp_core_get_qpds_major(void *instance);
- 説明
-
インスタンスのメジャーバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスのメジャーバージョン番号フィールド
intel_vvp_core_get_qpds_update
- プロトタイプ
-
uint8_t intel_vvp_core_get_qpds_ update(void *instance);
- 説明
-
インスタンスのマイナーバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスの更新 (マイナー) バージョン番号フィールド
intel_vvp_core_get_qpds_patch
- プロトタイプ
-
uint8_t intel_vvp_core_get_qpds_patch(void *instance);
- 説明
-
インスタンスのパッチバージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスのパッチ (ビルド) バージョン番号フィールド
intel_vvp_core_get_register_map_version
- プロトタイプ
-
uint8_t intel_vvp_core_get_register_map_version(void *instance);
- 説明
-
インスタンスのレジスターマップ・バージョン番号をクエリーします。インスタンスは、正常に初期化されている必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
intel_vvp_core_instanceインスタンスのレジスターマップ・バージョン番号フィールド
intel_vvp_core_get_img_info_width
- プロトタイプ
-
uint32_t intel_vvp_core_get_img_info_width(void *instance);
- 説明
-
インスタンスのIMG_INFO_WIDTHレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info widthレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_height
- プロトタイプ
-
uint32_t intel_vvp_core_get_img_info_height(void *instance);
- 説明
-
インスタンスのIMG_INFO_HEIGHTレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info heightレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_interlace
- プロトタイプ
-
uint8_t intel_vvp_core_get_img_info_interlace(void *instance);
- 説明
-
インスタンスのIMG_INFO_INTERLACEレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info interlaceレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_colorspace
- プロトタイプ
-
uint8_t intel_vvp_core_get_img_info_colorspace(void *instance);
- 説明
-
インスタンスのIMG_INFO_COLORSPACEレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info colorspaceレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_subsampling
- プロトタイプ
-
uint8_t intel_vvp_core_get_img_info_subsampling(void *instance);
- 説明
-
インスタンスのIMG_INFO_SUBSAMPLINGレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info subsamplingレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_cositing
- プロトタイプ
-
uint8_t intel_vvp_core_get_img_info_cositing(void *instance);
- 説明
-
インスタンスのIMG_INFO_COSITINGレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info cositingレジスターへの読み出しから返された値
intel_vvp_core_get_img_info_field_count
- プロトタイプ
-
uint16_t intel_vvp_core_get_img_info_field_count(void *instance);
- 説明
-
インスタンスのIMG_INFO_FIELD_COUNTレジスターを読み出します。インスタンスは正常に初期化されており、レジスターが読み出し可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
- 戻り値
-
image info field countレジスターへの読み出しから返された値
intel_vvp_core_set_img_info_width
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_width(void *instance, uint32_t width);
- 説明
-
新しい幅をインスタンスのIMG_INFO_WIDTHレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
幅 - 新しい幅
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
intel_vvp_core_set_img_info_height
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_height(void *instance, uint32_t height);
- 説明
-
新しい高さをインスタンスのIMG_INFO_HEIGHTレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
高さ – 新しい高さ
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
intel_vvp_core_set_img_info_interlace
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_interlace(void *instance, uint8_t height);
- 説明
-
新しいインターレースをインスタンスのIMG_INFO_INTERLACEレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
高さ – 新しい高さ
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
intel_vvp_core_set_img_info_colorspace
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_colorpsace (void *instance, uint8_t colorspace);
- 説明
-
新しいカラースペースをインスタンスのIMG_INFO_COLORSPACEレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
カラースペース – 新しいカラースペース
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
intel_vvp_core_set_img_info_subsampling
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_subsampling(void *instance, uint8_t subsampling);
- 説明
-
新しいサブサンプリングをインスタンスのIMG_INFO_SUBSAMPLINGレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
サブサンプリング – 新しいサブサンプリング
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード
intel_vvp_core_set_img_info_cositing
- プロトタイプ
-
eIntelVvpCoreErrors intel_vvp_core_set_img_info_cositing (void *instance, uint8_t cositing);
- 説明
-
新しいコサイティングをインスタンスのIMG_INFO_COSITINGレジスターに書き込みます。インスタンスは正常に初期化されており、レジスターは書き込み可能である必要があります。
- 引数
-
インスタンス - 初期化されたintel_vvp_coreソフトウェア・ドライバー・インスタンス構造体、またはそこから派生したソフトウェア・ドライバー構造体へのポインター
コサイティング – 新しいコサイティング
- 戻り値
-
成功の場合はkIntelVvpCoreOk (0)、エラーの場合は負のエラーコード