首页 > 编程知识 正文

zynq运行linux

时间:2023-05-04 06:00:24 阅读:285133 作者:2573

在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,就是  “/sys/class/gpio” 方式。

参考 Xilinx ZYNQ-7000 AP SOC 开发实用指南

http://xilinx.eetrend.com/blog/4908

http://www.wiki.xilinx.com/Linux+GPIO+Driver

这是自己的一些想法,可能不对,后面在改正。我之前非常犯愁的就是怎么在Linux  下使用GPIO:mio 和 emio,尤其在sdk 下需要很多的头文件,但是Linux下的应用程序,没有这些头文件应该怎么做,思考之后应该是在 Linux 不用把GPIO 一点一点配置,相反它是一个已经安装好的设备,就像pc 的鼠标和键盘一样,直接打开设备调用就行,至于这个GPIO 设备是怎么安装在Linux 系统里的,其实应该是xilinx 公司已经移植好的, 就像联想写了鼠标的接口,插上就能用一样。所以,我想使用 一个gpio 引脚,就先去使用打开 GPIO 的设备,然后再找一个引脚来用。如果我想用很多gpio 的引脚,可能就有两种做法,一种是一个一个gpio 的引脚来配置然后用,还有一个就是把这些gpio 的引脚写成一个单独的设备,然后在linux启动之后就可以用。

下面先介绍怎么用一个引脚的。

首先gpio 的驱动有没有被导出来,位置在 /sys/class/gpio

ls /sys/class/gpio


然后我们配置一个引脚 网上和书上用的microzed 开发板,gpio 文件夹下是 gpiochip0 ,例子用的 MIO47引脚,输出命令是 echo 47>/sys/class/gpio/export,但是使用这条命令在我的开发板上就会出错,这里我的引脚是从 906开始的,这里xilinx 的wiki 是有介绍的。


所以我的开发板的gpio 引脚也是从 906 到1023

下面是对引脚的操作


这里将上面的编号改成 GPIO 909 就是 mio4

echo 909 > /sys/class/gpio/exportls /sys/class/gpio/gpio909/cat /sys/class/gpio/gpio909/directioncat /sys/class/gpio/gpio909/valuels /sys/class/gpio/gpio909 echo out > /sys/class/gpio/gpio909/directionecho 1 > /sys/class/gpio/gpio909/value

这里可能和实际电路的连接有关。


下面继续按照 xilinx  wiki 上做 led 和  key 的设置。



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。