Xilinx AXI GPIO学习笔记以及问题点
1、问题总结
如上图,在Vivado中设置的GPIO IP只有一个,但是使用的两个Channel,此时在SDK中初始化和设置就容易出现问题。
1.1 XGPio结构体变量声明
声明XGPio结构体的变量,只能有一个。也就是说,在Vivado中调用了几个GPIO IP核,就只能调用几个变量。
1.2 地址定义
一个XGPio变量,对应一个地址。
1.3 Channel区分
双击IP核,可以看到分配的Channel.
1.4 函数调用
1.4.1 GPIO初始化 int XGpio_Initialize(XGpio *InstancePtr, u16 DeviceId);
一个GPIO只能使用一次初始化;
1.4.2 设置IO方向void _SetDataDirection(XGpio *InstancePtr, unsigned Channel, u32 DirectionMask);
其中Channel就是IP核里面的设置;