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:通道(1或2),
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都对应着中断控制器的中断输入,设置为1的bits对应设备进行中断。
XIntc_mDisableIntr(BaseAddress,DisableMask) ;
EnableMask:写入寄存器的32bit值,每bit都对应着中断控制器的中断输入,设置为1的bits对应设备中断禁止。
XTmrCtr_mSetLoadReg(BaseAddress,TmrCtrNumber,RegisterValue);设置时间计数器的LoadReg值。
TmrCtrNumber:8bits,时钟定时器,0到(XTC_DEVICE_TIMER_COUNT-1)。
RegisterValue:写入寄存器的32bit值。
XTmrCtr_mSetControlStatusReg(BaseAddress,TmrCtrNumber,RegisterValue);设置ControlStatusReg值。
XTmrCtr_mGetControlStatusReg(BaseAddress,TmrCtrNumber);获取ControlStatus寄存器的值。使能Microblaze中断
microblaze_enable_interrupts();使能Microblaze中断