语法
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)
:初始化名为 uio
的器件,以供在 Linux 系统上使用。使用 sysfs 中的 uio
器件信息创建最多 5 个存储器映射并按 mmap
分配从基址。
其中,各实参定义如下:
-
InstancePtr
- 指向器件实例的指针。
-
DeviceId
- xparameters.h 中定义的器件 ID。
-
BaseAddress
- 此 BaseAddress 是在 xparameters.h 中定义的。
-
InstanceName
-
uio
器件的名称。
返回
XST_SUCCESS
表示成功,否则即为失败。