ZYNQ:MIO、EMIO、IO的区别和灵活使用( 二 )


}
2、 PS配置EMIO进行输出
在使用EMIO时需要在Z7的IP核配置时选择EMIO 。如下图,这里选择了2个EMIO端口 。

ZYNQ:MIO、EMIO、IO的区别和灵活使用

文章插图
其次又要EMIO硬件上属于PL端,需要在PL端对GPIO进行约束,通俗的讲就是把这个GPIO硬件端口链接到PS上 。管脚约束文件如下图
在完成了上述配置后,在SDK上对这些EMIO进行配置时就和MIO一样 。
3、PS配置PL端普通IO进行输出
这个方式对PL端普通IO进行操作是比较麻烦的,并且也消耗AXI总线资源 。
AXI接口如下表描述:
在使用PS对PL端IO操作时,相当于GPIO的IP核,是通过AXI总线挂在PS上的GPIO上 。因此系统整体连线图如下图所示:(这个图包含了MIO、EMIO和)
这部分由于使用了AXI总线,设备的ID和地址都是确定的,因此不需要对GPIO的设备ID和基地址进行配置,只需要对PL端GPIO进行初始化即可 。
= (&, CE_ID);
if (NULL!=)
print (“ok \n\r”) ;
on(&,1,1);
on(&,2,0);
然后对这个IO进行读写操作,这里需要主要的是输入数据为32位,需要把输入的数据和GPIO数量要进行对应 。
(&,2,);
(&,2,);
总结
【ZYNQ:MIO、EMIO、IO的区别和灵活使用】这三种GPIO的配置有相同的地方和不同的地方,不同的地方主要是由GPIO所归属的物理位置不同导致,由于物理位置不同进行额外配置在PL端 。而在PS端其实需要修改的很少 。因此在SDK上进行IO操作是相对灵活且简单的 。