ZYNQ 在linux 通过AXI_GPIO操作电平

2023-05-16

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

axi_gpio_n都是选择的一位输出:

管脚约束:

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<stdlib.h>
#include <fcntl.h>
#include <stdio.h>
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 在linux 通过AXI_GPIO操作电平 的相关文章

  • Linux 中不使用 C++ 的 C 异常处理

    Linux 是否提供了 C 语言的异常处理而不求助于 C 或者 实现此类异常处理的最佳方法是什么 目标是避免检查每个调用的函数的返回码 而是执行类似于 C 的线程安全且易于移植的操作 您可以通过为其编写信号处理程序来处理信号 GNU 记录的
  • Ubuntu 上的 Docker 无法连接到本地主机,但可以连接到其 IP

    我运行的是 Ubuntu 18 04 uname r 5 3 0 46 generic 我已经安装了docker docker version Docker version 19 03 8 build afacb8b7f0 我有一个简单的
  • 从命令输出中设置 GDB 中的环境变量

    我试图在挑战中利用缓冲区溢出 缓冲区从环境变量中获取其值 在 GDB 中 我知道您可以使用以下命令设置环境变量 set environment username test 但是我需要传递用户名变量特殊字符 所以我需要执行以下操作 set e
  • 如何在Linux中打开端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经安装了 Web 应用程序 该应用程序在 RHEL centOS 上的端口 8080 上运行 我只能通过命令行访问该机器 我尝试从我的
  • 为什么我的 Java 代码执行 bash 命令不正确?

    我试图让我的 Java 程序与 Linux bash 交互 但出了问题 我有一个简单的可执行文件prog从中读取一个整数stdin并输出其平方 执行中 echo 5 prog 从 bash 本身打印正确答案25 in stdout但运行 i
  • 将 -1 作为文件描述符传递给 mmap

    我对 FC17 Linux 中的 ls 命令进行了 strace 以下是输出 execve usr bin ls ls 48 vars 0 brk 0 0x27c1000 mmap NULL 4096 PROT READ PROT WRIT
  • 在ubuntu 18.04上安装python 2.7

    有没有办法在 Ubuntu 18 04 上安装 Python 2 7 我尝试了这个命令 但它不起作用 sudo apt install python minimal 有没有办法手动安装 我尝试使用 python 2 7 作为不支持 pyth
  • 找出某个日期时间自unix纪元以来的时间?

    我想找出 2009 年 10 月 1 日 9 00 BST 的 UNIX 时间 即自 Unix 纪元以来的秒数 我如何在 Linux 命令行上执行此操作 我知道你可以使用date UNIXTIME someformat 但是unix时间是我
  • 更改 Amazon RDS MYSQL Linux 服务器的 innodb_log_file_size 变量值

    我们正在使用 Amazon RDS linux 服务器作为 MYSQL 更改 my cnf 文件变量值的方法是什么 我正在尝试更改 innodb log file size 变量 您能告诉我哪一个是最好的改变方式吗 所以请帮我解决这个问题
  • __libc_start_main 发生了什么?

    我真的很想理解从高级代码到可执行文件的步骤 但是遇到了一些困难 我写了一个空的int main C 文件并尝试通过以下方式破译反汇编objdump d 这是发生的事情 in start 设置对齐方式 将参数压入堆栈 调用 libc star
  • 使用正在运行的进程的共享内存收集核心转储

    核心转储仅收集进程空间 而不收集为进程间通信创建的共享内存 如何使核心转储也包含正在运行的进程的共享内存 设置核心文件过滤器 proc PID coredump filter per http man7 org linux man page
  • 安全地记住 bash 脚本中的 ssh 凭据[重复]

    这个问题在这里已经有答案了 假设我有一个 bash 脚本 它通过 ssh 在远程计算机上执行命令 Do something here ssh otheruser host command1 Do something else ssh oth
  • 在 Unix 中,我可以在目录中运行“make”而无需先 cd 到该目录吗?

    在 Unix 中 我可以运行make在没有的目录中cd首先进入该目录 make C path to dir
  • 什么是接口标识符

    我有一台笔记本电脑 使用一个或多个网络适配器连接到我组织的网络 我正在尝试编写一个工具来持续监控每个网络的连接状态和连接质量 然而 我的网络知识有限 术语让我感到困惑 特别是查找所有网络适配器 有人建议我使用命令ifconfig它给了我所谓
  • C中的内存使用问题

    请帮忙 操作系统 Linux 其中 sleep 1000 中 此时 top 显示Linux任务 给我写了7 7 MEM使用 valgrind 未发现内存泄漏 我明白 写得正确 所有 malloc 结果都是 NULL 但是为什么这次 睡眠 我
  • 从 Java 读取 /dev/input/js0

    我正在尝试阅读 dev input js0来自Java 但我不断得到 java io IOException Invalid argument at java io FileInputStream read0 Native Method a
  • 干净地销毁System V共享内存段

    我在用shmget shmat and shmctl分别获取和创建共享内存段 将其附加到进程地址空间中并删除它 我想知道进程是否仍然可以使用共享内存段 即使它已被分离并要求使用删除 shmctl id IPC RMID 在一个过程中 我无法
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 使用 linux perf 工具测量应用程序的 FLOP

    我想使用 perf Linux 性能计数器子系统的新命令行接口命令 来测量某些应用程序执行的浮点和算术运算的数量 出于测试目的 我使用了我创建的一个简单的虚拟应用程序 请参见下文 因为我找不到任何为测量 FP 和整数运算而定义的 perf
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O

随机推荐

  • 下载进度条

    span class token doctype span class token punctuation lt span span class token doctype tag DOCTYPE span span class token
  • 域名绑定到github主页

    最近在通过网上的教程搭建自己的github主页 xff0c 虽然现在也是半成品 xff0c 但是其中有一些步骤以及参考的连接还是值得分享一下的 首先在godaddy上购买的 com域名 xff0c 因为看见大家都说购买国内的域名需要备案之类
  • c++面试宝典

    目录 一 多线程 二 指针 三 字符串 四 面向对象 五 基本用法 六 c 43 43 11 七 算法 c 43 43 面试必考多线程 xff0c 内存 xff08 智能指针 xff09 xff0c 常见算法 xff0c 设计模式 一 多线
  • ssh远程执行命令的方法

    设置免密登录之后 xff0c 通常ssh remote ip command 就可以方便的执行远程命令 如果遇到包含单引号或者双引号的命令 xff0c 执行不成功 xff0c 如 xff1a awk F 39 39 39 print 1 3
  • [海外上架必备][Android]Google原生代码崩溃符号生成的问题

    默认情况下 xff0c 原生代码库已从应用的发布 build 中移除 此移除操作包括移除应用所使用的所有原生库中包含的符号表及调试信息 移除原生代码库会显著缩减大小 xff1b 但是 xff0c 由于缺少信息 xff08 例如类和函数名称
  • “应版权方要求,文件无法下载”的解决方案

    应版权方要求 xff0c 文件无法下载 的解决方案 参考文章 xff1a xff08 1 xff09 应版权方要求 xff0c 文件无法下载 的解决方案 xff08 2 xff09 https www cnblogs com easyide
  • 分布式系统核心—日志

    分布式系统的核心组件 日志 有时也叫write ahead logs commit logs 或者事物 logs 通常指在应用所有的修改之前先写入日志 xff0c 一般会将重放日志 撤销日志都写进去 NoSQL数据库 KV存储 Hadoop
  • ctags使用方法 ctags的使用方法

    用 ctags 看代码时 xff0c 检索函数及变量使用的文件是 tags 文件 有时我们会定制检索的文件范围 xff0c 这时候就可以通过 ctags 命令的一些参数来控制 tags 文件的内容 1 xff1a 递归检索当前目录以下所有默
  • AFNetworking 介绍和简单实用

    AFNetworking github AFNetworking AFNetworking 是一个网络请求封装框架 xff0c 使用简单 xff0c 功能强大 xff1b 在AFNetworking 3 x版本 通过封装NSURLSessi
  • Tomcat端口冲突的解决方法

    1 输入以下两条命令 span class ruby span class hljs number 1 span dos窗口中输入 xff1a netstat ano findstr span class hljs number 8080
  • Spring 框架介绍和使用

    微信公众号 xff1a 运维开发故事 xff0c 作者 xff1a 老郑 历史的选择 Spring 作为一个基础的框架 xff0c 是在 Java EE 开发历史中 xff0c 是成千上万公司选择 单独使用 Spring 的非常少了 xff
  • xshell无法调用图形化的解决方法

    在xshell无法调用图形化界面 xff0c 使用VNC服务 xshell中调用图形化界面需要2个地址互通 xff0c 只有一端通无法传输图形化界面 xff08 本地没有获取IP xff09 但是vnc只需要和服务器端连通即可 1 首先我们
  • python3+requests请求方式application/x-www-form-urlencoded传递数组Arrary

    python3 43 requests传递比较简单的key value格式数据比较简单 导入 requests 包 import requests 表单参数 xff0c 参数名为 fname 和 lname myobj 61 39 fnam
  • 用Java远程执行shell命令出现java: command not found

    一 问题发现 xff1a 在使用jsch远程调用shell命令时 xff0c 提示java command not found 这个错误的意思是linux的环境变量里没有配置JAVA HOME的内容 但是我在Linux上查看了一下环境变量
  • Android Design Support Library

    1 Navigation View 对于应用程序 xff0c 它代表着一个标准的导航菜单 菜单内容可以由菜单资源文件填充 NavigationView通常放在一个DrawerLayout里面 lt xml version 61 34 1 0
  • 日常问题:解决nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found问题

    今天在调试上周编写好得代码程序的时候 xff0c 在执行到mybatis获取某行数据转换成自定义的类型时 xff0c 抛出了异常 xff1a nested exception is org apache ibatis executor Ex
  • Abort message: ‘FORTIFY: FD_SET: file descriptor 1070 >= FD_SETSIZE 128‘

    问题现象 压力测试骁龙相机 xff0c 发现camera provicer 进程崩溃 无法正常打开相机 xff0c 只有重新启动设备 相关的log xff1a 03 23 08 17 08 592 15634 15634 F DEBUG s
  • 滚动校验(Rolling Checksum)算法

    滚动校验 Rolling Checksum 算法 Rsync中使用了一种滚动检验 Rolling Checksum 算法 xff0c 用于快速计算数据块的检验值 它是一种弱校验算法 xff0c 采用的是Mark Adler的adler 32
  • Android GMS认证总结01

    测试项 失败项 备注 GTS com google android media gts WidevineYouTubePerformanceTests testL3Cenc720P30 pass com google android per
  • ZYNQ 在linux 通过AXI_GPIO操作电平

    在petalinux 通过AXI GPIO操作电平 以zynq为例 xff0c vivado工程 xff1a axi gpio n都是选择的一位输出 xff1a 管脚约束 xff1a set property SEVERITY Warnin