EDK学习笔记——C函数整理

XGpio_Initialize( XGpio * InstancePtr,u16 DeviceId)  ;

InstancePtr:指向设备的指针(自己定义),

DeviceId:设备id,xparameters.h中找到。

返回:XST_SUCCESS(成功),XST_DEVICE_NOT_FOUND(失败)。

XGpio_SetDataDirection(XGpio * InstancePtr,unsigned Channel,u32 DirectionMask) ; 

Channel:通道(12),

DirectionMask:标志设备输入输出(1为输入,0为输出)。

XGpio_DiscreteRead(XGpio * InstancePtr,unsigned Channel);读取InstancePtr指向寄存器的值

返回:读取的数值

XGpio_DiscreteWrite(XGpio * InstancePtr,unsigned Channel,u32 Data)  ;

Data:将要写入InstancePtr指向寄存器的值。

XGpio_mSetDataReg(BaseAddress, Channel, Data) ;往GPIO置数。

  Data:写入寄存器的数据。

XIntc_RegisterHandler(Xuint32 BaseAddress, int InterruptId, XInterruptHandler Handler, void *CallBackRef)

  InterruptId是中断ID号,格式为XPAR_<产生中断的元件的实例名>_<中断信号名> _INTR,xparameter.h中找到,

  Handler是中断函数名,用户定义,

  CallBackRef被用来传递参数(中断函数被调用时),不用为0或NULL,外部中断时用NULL,

int XIntc_Connect (XIntc *InstancePtr,u8 Id,XInterruptHandler Handler,void *CallBackRef)也可完成类似功能。

XIntc_mMasterEnable(BaseAddress); 使能所有在master enable寄存器中的中断。

XIntc_mMasterDisable(BaseAddress); 禁止所有的中断。

XIntc_mEnableIntr(BaseAddress,EnableMask);    

EnableMask:写入寄存器的32bit值,每bit都对应着中断控制器的中断输入,设置为1bits对应设备进行中断

XIntc_mDisableIntr(BaseAddress,DisableMask) ;  

EnableMask:写入寄存器的32bit值,每bit都对应着中断控制器的中断输入,设置为1bits对应设备中断禁止。

XTmrCtr_mSetLoadReg(BaseAddress,TmrCtrNumber,RegisterValue);设置时间计数器的LoadReg值。

TmrCtrNumber8bits,时钟定时器,0(XTC_DEVICE_TIMER_COUNT-1)

RegisterValue:写入寄存器的32bit值。

XTmrCtr_mSetControlStatusReg(BaseAddress,TmrCtrNumber,RegisterValue);设置ControlStatusReg值。

XTmrCtr_mGetControlStatusReg(BaseAddress,TmrCtrNumber);获取ControlStatus寄存器的值。使能Microblaze中断

microblaze_enable_interrupts();使能Microblaze中断

原文地址:https://www.cnblogs.com/mingmingruyue99/p/7202003.html