在Project Explorer中,新增了示例system_bsp _example_1目录,我们打开其src目录下的xgpio_example.c文件。如图 3.4.10所示: 图3.4.10 打开xgpio_example.c文件 “xgpio_example.c”包含三个函数:“xparameters.h”、“xgpio.h”和“xil_printf.h”,按下Ctrl键的同时鼠标点击相应的函数即可进入函数中查看信息。
(5)双击打开“platform.spr”,点击“axi_gpio_1”的“Import Examples”。 选择“xgpio_intr_tapp_example”例程。 (6)由于我们按键中断是接在axi_gpio_1上,我们需要修改该例程的宏定义,将GPIO_0改为GPIO_1。 (7)例程的GPIO中断代码说明如下: (8)修改例程的GPIO中断服务函数“GpioHandler”,使其完成4个拨...
void XGpio_DiscreteClear(XGpio * InstancePtr,unsigned Channel,u32 Mask) 具体代码如下, int main(void) { int Status; volatile int Delay; /* Initialize the GPIO driver */ Status = XGpio_Initialize(&Gpio, GPIO_EXAMPLE_DEVICE_ID); if (Status != XST_SUCCESS) { xil_printf("Gpio Initializati...
将我们提供的xgpio_example.c 文件复制到src下 Step11 生成BOOT.bin文件 右击 axi_gpio-->Create ...
1)和前面的教程一样,在不熟悉Vitis程序编写的情况下,我们尽量使用Vitis自带例程来修改,选择“xgpio_intr_tapp_example” 2)需要修改部分代码,按键的axi gpio模块叫做axi_gpio_1,在xparameters.h中找到它的device id 3)然后可以修改GPIO和中断号的宏定义如下 ...
1)和前面的教程一样,在不熟悉Vitis程序编写的情况下,我们尽量使用Vitis自带例程来修改,选择“xgpio_intr_tapp_example” 2)需要修改部分代码,按键的axi gpio模块叫做axi_gpio_1,在xparameters.h中找到它的device id 3)然后可以修改GPIO和中断号的宏定义如下 ...
一个AXI GPIO 模块有两个GPIO,分别是GPIO和GPIO2,也就是channel1和channel2,为 双向IO。 AXI GPIO的寄存器也不多,主要是两个channel 的数据寄存器GPIO_DATA和GPIO2_DATA,两个channel的方向控制GPIO_TRI和GPIO2_TRI,以 及全局中断使能寄存器GIER,IP的中断使能IP IER和中断状态寄存器ISR,具体的功能可以看 ...
XGpio Gpio; /* The Instance of the GPIO Driver */ static volatile u32 IntrFlag; /* Interrupt Handler Flag */ int main(void) { int Status; u32 DataRead; print(" Press button to Generate Interrupt\r\n"); Status = GpioIntrExample(&Gpio, XGPIO_AXI_BASEADDRESS, GPIO_CHANNEL1, &Data...
1:打开的edit_GPIO_LITE_ML_V1_0.xpr工程界面如下。 查看生成IP的文件夹 2:现在生成的IP需要进行修改才能满足我们使用需求。选中Project Manager,双击GPIO_LITE_ML_v1_0_S00_AXI_inst,做如下更改。 修改1: 修改2: 将slv_reg0的值赋值给了用户输出逻辑,当我们向slv_reg0写入数据的时候,也就相当于向GPIO...
在Vitis开发环境中,创建Vitis应用工程,并添加自定义硬件平台。选择空模板,导入示例GPIO程序。根据官方示例“xgpio_example.c”进行软件设计,创建源文件并实现流水灯功能。编译工程并生成axi_gpio_led.elf文件。进行板级验证,连接开发板并使用串口助手。打开Vitis Terminal窗口,下载程序。在Vitis终端中观察...