本文转载自:Vuko-wxh的CSDN博客
前言
本文主要介绍关于RF数据转换器的系统配置函数的相关使用方法。
用户API函数
所有用户 API 函数都在源文件 xrfdc.c 中实现。 这些原型在头文件 xrfdc.h 中提供。
系统设置
所有驱动程序 API 函数都将 InstancePtr 作为参数。 它是指向 XRFdc 结构的指针,其中包含有关基地址、指向 RFdc 默认配置的结构以及 RF-ADC 和 RF-DAC tile 配置的结构的信息。 InstancePtr 参数在 XRFdc_CfgInitialize API 函数中初始化。 在调用任何其他函数之前,调用 XRFdc_CfgInitialize API 函数来初始化 InstancePtr。
XRFdc_CfgInitialize
函数原型
u32 XRFdc_CfgInitialize(XRFdc *InstancePtr, XRFdc_Config *ConfigPtr);
参数
XRFdc * InstancePtr:指向驱动程序实例的指针。
*XRFdc_Config ConfigPtr:指向配置结构的指针。
描述
此 API 函数通过从配置结构复制相关条目来填充驱动程序实例中的适当条目。与 RFdc 驱动程序 API 的任何软件交互都需要此函数,并且必须在使用任何其他 API 函数之前首先调用此函数。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE
XRFdc_LookupConfig
函数原型
XRFdc_Config *XRFdc_LookupConfig(u16 DeviceId);
参数
u16 DeviceId:需要其配置信息的设备的ID。
描述
该 API 函数根据设备的唯一 ID 查找设备配置。 一个表包含系统中每个设备的配置信息。
返回值
该函数返回一个指向找到的配置的指针,如果未找到指定的设备 ID,则返回 NULL。
XRFdc_RegisterMetal
函数原型
u32 XRFdc_RegisterMetal(XRFdc *InstancePtr, u16 DeviceId, struct metal_device **DevicePtr);
参数
XRFdc * InstancePtr:指向驱动程序实例的指针。
u16 Device_Id:驱动程序的设备ID。
struct metal_device **DevicePtr:指向metal设备的指针。
描述
该 API 函数使用 Libmetal 注册RFDC。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE
XRFdc_StartUp
函数原型
u32 XRFdc_StartUp(XRFdc *InstancePtr, u32 Type, int Tile_Id);
参数
*XRFdc InstancePtr:指向驱动程序实例的指针。
u32 Type :RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。
int Tile_Id :RF-ADC/RF-DAC 块编号。 有效值为 0-3 和 -1(适用于所有片)。
描述
此 API 函数根据 Tile_Id 的请求重新启动片。 如果 -1 作为 Tile_Id 传递,该函数将重新启动所有启用的切片。 现有寄存器设置不会在此过程中丢失或更改。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE(在 tile 未启用或可用时返回)
XRFdc_Shutdown
函数原型
u32 XRFdc_Shutdown(XRFdc *InstancePtr, u32 Type, int Tile_Id);
*XRFdc InstancePtr : 指向驱动程序实例的指针。
u32 Type : RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。
int Tile_Id: 有效值为0-3 和-1(适用于所有图块)。
描述
此 API 函数根据 Tile_Id 的请求停止片。 如果 -1 作为 Tile_Id 传递,该函数将停止所有启用的切片。 现有的寄存器设置不会被清除。这是 RF-ADC 和 RF-DAC 块的通用 API 函数。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE(在tile未启用或可用时返回)
XRFdc_Reset
函数原型
u32 XRFdc_Reset(XRFdc *InstancePtr, u32 Type, int Tile_Id);
参数
*XRFdc InstancePtr: 指向驱动程序实例的指针。
u32 Type: RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。
int Tile_Id : 有效值为0-3 和-1(适用于所有图块)。
描述
此 API 函数通过 Tile_Id 请求重置图块。 如果 -1 作为 Tile_Id 传递,它将重置所有启用的图块。 所有现有的寄存器设置都将被清除并替换为最初配置的设置。这是 RF-ADC 和 RF-DAC 块的通用 API 函数。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE(在tile未启用或可用时返回)
XRFdc_CustomStartUp
函数原型
u32 XRFdc_CustomStartUp(XRFdc *InstancePtr, u32 Type, int Tile_Id, u32 StartState, u32 EndState);
参数
*XRFdc InstancePtr: 指向驱动程序实例的指针。
u32 Type: RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。
int Tile_Id : 有效值为0-3 和-1(适用于所有图块)。
u32 StartState :启动 IPSM 的状态。
u32 Endstate : 最高 IPSM 的状态。
描述
此 API 函数按照通过 Tile_Id 的请求,将 IPSM 从 StartState 运行到 EndState。 如果 -1 作为 Tile_Id 传递,则该函数针对所有启用的图块运行。 如果 StartState 为 XRFDC_STATE_OFF,现有寄存器设置将丢失或更改。
返回值
XRFDC_SUCCESS
XRFDC_FAILURE
XRFdc_DumpRegs
函数原型
void XRFdc_DumpRegs (XRFdc *InstancePtr, u32 Type, int Tile_Id);
参数
*XRFdc InstancePtr: 指向驱动程序实例的指针。
u32 Type: RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。
int Tile_Id : 有效值为0-3 和-1(适用于所有图块)。
说明
该函数用于调试目的。它将寄存器中的内容打印到控制台,以显示所传递的Tile_Id。如果通过了-1,它将打印出相应的RF-ADC或RF-DAC的所有瓦片的寄存器内容。它打印出寄存器的偏移量以及内容。