首先,先承认一个之前犯得错误:我误以为MIO就是GPIO
原理介绍
首先看这张图:

可以看出来,GPIO是PS端的一个外设,而MIO是各种外设出去的途径。比如串口、IIC、SPI等等,都可以通过MIO出芯片,当然,GPIO也可以通过MIO出芯片。
GPIO有6个BANK,BANK0-2可以从MIO出去;BANK3-5从EMIO进入PL;
Vivado工程修改
为了使用GPIO,首先还是得在BD中设置好用哪些IO,ALINX这个4EV开发板有LED灯,还有按键,我们把这些都先设置好。
首先拷贝一份之前的vivado工程,打开MPSOC的设置界面,勾选GPIO:

检查电路板原理图,可以看到LED接到MIO40,按键接到了MIO26,默认高电平,按下低电平。
工程修改好后,运行工程,然后导出xsa文件。
Vitis工程搭建
还是不偷懒原则,新建vitis工程,先建立一个hello world的工程。

建立好hello工程后,怎么开始写代码?我一头雾水,所以呢,我们先不用hello工程, 直接先去看看xilinx提供的GPIO的例子工程:



例子工程打开后,找到GpioPolledExample()这个函数,因为我们板子是使用的MIO40,所以需要小小的修改一丢丢代码,把IO改成40:

然后直接在xgpiops_polled_example上右键,Run As,发现连接不上板子,提示我不是在jtag模式下,我在SD启动模式下,这种模式下经常连接不上下载器。哎,算了,还是换成jtag模式吧。
然后换成jtag模式

最低0.47元/天 解锁文章
579

被折叠的 条评论
为什么被折叠?



