zynq gpio linux,ZYNQ 在linux 通过AXI_GPIO操作电平

2023-05-16

在petalinux 通过AXI_GPIO操作电平,以zynq为例,vivado工程:

686b86e4cfb42ab4c4ec8d59171b4259.png

axi_gpio_n都是选择的一位输出:

67ece3c0adec5818a5cd40b90e68c9b3.png

管脚约束:

set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

set_property PACKAGE_PIN J16 [get_ports AXI_GPIO_LED1_tri_o]

set_property IOSTANDARD LVCMOS33 [get_ports AXI_GPIO_LED1_tri_o]

set_property PACKAGE_PIN K16 [get_ports AXI_GPIO_LED2_tri_o]

set_property IOSTANDARD LVCMOS33 [get_ports {AXI_GPIO_LED2_tri_o}]

set_property PACKAGE_PIN G15 [get_ports AXI_GPIO_LED3_tri_o]

set_property IOSTANDARD LVCMOS33 [get_ports AXI_GPIO_LED3_tri_o]

set_property PACKAGE_PIN H15 [get_ports AXI_GPIO_LED4_tri_o]

set_property IOSTANDARD LVCMOS33 [get_ports AXI_GPIO_LED4_tri_o]

AXI_GPIO驱动在生成启动文件的时候,是默认编译的。

然后编译制作SD卡启动文件,然后写入程序测试:arm-linux-gnueabihf-gcc test_led.c -o test_led

#include#include #include int main(int argc, char **argv)

{

int valuefd,exportfd,directionfd;

exportfd = open("/sys/class/gpio/export", O_WRONLY);  //打开设备

if(exportfd<0)

{

printf("open exportfd faild\n");

exit(1);

}

write(exportfd,"1023",4);

close(exportfd);

printf("1,exportfd open successful\n");

directionfd = open("/sys/class/gpio/gpio1023/direction", O_RDWR);

if(directionfd<0)

{

printf("open directionfd faild\n");

exit(1);

}

write(directionfd,"out",4);

close(directionfd);

printf("2,directionfd open successful\n");

valuefd = open("/sys/class/gpio/gpio1023/value", O_RDWR);

if(valuefd <0)

{

printf("open valuefd faild\n");

exit(1);

}

write(valuefd,"0",2);

usleep(200*1000);

write(valuefd,"1",2);

printf("3,valuefd open successful\n");

}

或者在zynq板子写入脚本测试

#!/bin/sh

gpio_test()

{

gpio=$1

echo $gpio > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio${gpio}/direction

for i in $(seq 1 3)

do

echo 0 >/sys/class/gpio/gpio${gpio}/value

sleep 1

echo 1 >/sys/class/gpio/gpio${gpio}/value

sleep 1

done

echo $gpio > /sys/class/gpio/unexport

}

gpio_test 897

gpio_test 1015

gpio_test 1019

gpio_test 1020

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zynq gpio linux,ZYNQ 在linux 通过AXI_GPIO操作电平 的相关文章

随机推荐