对于ZYNQ的硬件驱动库编程方法,我这边用STM32的标准库函数方法来对应。
也就是说在ZYNQ里面有给定的官方的标准驱动库,将原本的寄存器方法给一定程度的封装起来。
类似于stm32学习过程中给的库函数版本,将你从寄存器版本中解救出来(虽然会影响运行效率,但是这种普通开发者可忽略不计)
像下面的调用GPIO的函数,就已经跟stm32的调用很相似了。代码的可读性比寄存器版本的上升了好多。
#include "xgpiops.h"
#include "unistd.h"
XGpioPs Gpio;
XGpioPs_Config *ConfigPtr;
int main(void)
{
//初始化GPIO驱动
ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);
//设置引脚输入输出方向,0输入 1输出
XGpioPs_SetDirectionPin(&Gpio, 7, 1);
//使能输出引脚
XGpioPs_SetOutputEnablePin(&Gpio, 7, 1);
while(1)
{
//设置bit7输出1,设置引脚输出的值
XGpioPs_WritePin(&Gpio, 7, 0x1);
usleep(500000);
//设置bit7输出0
XGpioPs_WritePin(&Gpio, 7, 0x0);
usleep(1000000);
}
return 0;
}
不做深入寄存器研究的话,暂时会使用就行
标签:引脚,寄存器,硬件,ConfigPtr,ZYNQ,Gpio,gpio,XGpioPs From: https://www.cnblogs.com/cjl520/p/18143343