構文
int X<DUT>_Initialize(X<DUT> *InstancePtr, uintptr BaseAddress);
int X<DUT>_Initialize(X<DUT> *InstancePtr, u16 DeviceId);
int X<DUT>_Initialize(X<DUT> *InstancePtr, const char* InstanceName);
説明
int X<DUT>_Initialize(X<DUT>
*InstancePtr, uintptr BaseAddress)
: スタンドアロン システムで使用する場合に、デバイスの BaseAddress
を初期化します。この API は InstancePtr
に適切な値を書き込みます。この後、ほかの API で使用できます。
注記:
DeviceId
は、ドライバー コンフィギュレーション構造体には含まれなくなりました。ドライバー インスタンスの識別には BaseAddress
が使用されるようになっています。DeviceId
は xparameters.h
ファイルにも入力されません。従来のクラシック Vitis または Vitis HLS ツールで開発されたこれらのドライバーを使用するソフトウェア アプリケーションは、次の例に示すように、#ifdef
SDT
でこの変更を反映するように更新する必要があります。#ifndef SDT
#define GPIO_EXAMPLE_DEVICE_ID XPAR_GPIO_0_DEVICE_ID
#else
#define XGPIO_AXI_BASEADDRESS XPAR_XGPIO_0_BASEADDR
#endif
int X<DUT>_Initialize(X<DUT>
*InstancePtr, u16 DeviceId)
: スタンドアロン システムで使用する場合に、デバイスを初期化します。この API は InstancePtr
に適切な値を書き込みます。この後、ほかの API で使用できます。AMDでは、この API を呼び出してデバイスを初期化することをお勧めします。ただし、システムで MMU が使用されている場合は、X<DUT>_CfgInitialize
を使用してください。
int X<DUT>_Initialize(X<DUT>
*InstancePtr, const char* InstanceName)
: Linux システムで使用する場合に、指定した uio
デバイスを初期化します。最大で 5 つのメモリ マップを作成して、sysfs で uio
デバイス情報を使用して mmap
でスレーブ ベース アドレスを割り当てます。
さまざまな引数が次のように定義されています。
-
InstancePtr
- デバイス インスタンスへのポインター。
-
DeviceId
- xparameters.h で定義されたデバイス ID。
-
BaseAddress
- xparameters.h で定義されたベース アドレス。
-
InstanceName
-
uio
デバイスの名前。
戻り値
問題がなかった場合は XST_SUCCESS
、それ以外の場合はエラーあり。