打印
[i.MX]

逛了好几天论坛一个最简单的问题都解决不了,iMX6q gpio

[复制链接]
4681|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
460077234|  楼主 | 2016-1-22 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚买了块imx6q的开发板,内核用的移植好的,我把驱动框架搭建好了只想在驱动里操作一个IO口。不知道如何操作,或者说直接点不知道程序怎么写。也不知道在内核的什么地方找哪些函数调用可以操作IO。还有要在EIM_DA0的地址上发数,但是EIM_DA0的地址是什么呢? 看手册看了好几天都找不到地址,最基本的都不会操作。开发板带的资料都是做好的内核 u-boot QT 文件系统,但是最简单的操作一个IO口的例程都没有。有没有哪位给指点一下。qq460077234

相关帖子

沙发
mini1986| | 2016-1-22 14:20 | 只看该作者
自己写一个char设备的驱动就可以了......

使用特权

评论回复
板凳
460077234|  楼主 | 2016-1-22 16:31 | 只看该作者
mini1986 发表于 2016-1-22 14:20
自己写一个char设备的驱动就可以了......

驱动已经写完了啊。怎么操作IO口呢。随便一个IO口拉高 置低。

使用特权

评论回复
地板
kris_fei| | 2016-1-22 17:05 | 只看该作者
用户空间操作。

建议你看下linux设备驱动开发方面的书籍

使用特权

评论回复
5
460077234|  楼主 | 2016-1-22 17:12 | 只看该作者
来回复吧友们 首先谢谢你们来捧场。我的问题不在驱动上。驱动框架我已经搭建完了。就差在IOCTL里边调用把 任意一个IO口的管脚置高或者置低的函数。 很多人都说linux内核里边已经把寄存器配置好了,函数也封装好了,调用就行,但是函数在哪里呢? 我需要直接告诉我调用哪些函数可以操作IO口就行了。

使用特权

评论回复
6
460077234|  楼主 | 2016-1-22 17:14 | 只看该作者
内核版本 3.0.35

使用特权

评论回复
7
ccw1986| | 2016-1-22 21:06 | 只看该作者
还是先找一个Linux的例子把简单的IO读写学会了吧

使用特权

评论回复
8
btrace| | 2016-1-23 10:28 | 只看该作者
460077234 发表于 2016-1-22 17:12
来回复吧友们 首先谢谢你们来捧场。我的问题不在驱动上。驱动框架我已经搭建完了。就差在IOCTL里边调用把  ...

直接读写文件啊,驱动都写出来了read&write不知道?

使用特权

评论回复
9
mini1986| | 2016-1-25 08:22 | 只看该作者
460077234 发表于 2016-1-22 16:31
驱动已经写完了啊。怎么操作IO口呢。随便一个IO口拉高 置低。

应用层read/write就可以了......

使用特权

评论回复
10
kris_fei| | 2016-1-25 15:16 | 只看该作者
不是没人帮你解决,你看上面这么多人已经告诉你答案了。
既然你学开发了,这么点好学精神应该有的,这个是驱动开发最基本的东西了,难道你希望别人手把手教你吗?

使用特权

评论回复
11
dayqr| | 2016-1-28 11:31 | 只看该作者
我发点干货吧!曾经也被困扰
#define EIM_DA0              IMX_GPIO_NR(3, 0)          

gpio_direction_output(EIM_DA0, 1);

gpio_direction_input(EIM_DA0);
data = gpio_get_value(EIM_DA0);

使用特权

评论回复
12
460077234|  楼主 | 2016-1-30 15:53 | 只看该作者
kris_fei 发表于 2016-1-25 15:16
不是没人帮你解决,你看上面这么多人已经告诉你答案了。
既然你学开发了,这么点好学精神应该有的,这个是 ...

你看11楼发的东西。 我要是如何操作IO口,是内核封装好的。我在帖子里说了驱动框架我已经搭建好了,就差直接操作IO的函数了。

使用特权

评论回复
13
460077234|  楼主 | 2016-1-30 15:54 | 只看该作者
dayqr 发表于 2016-1-28 11:31
我发点干货吧!曾经也被困扰
#define EIM_DA0              IMX_GPIO_NR(3, 0)          

谢谢,确实是我需要的,我想多问一句,管脚功能配置成IO口模式 如何配置呢?

使用特权

评论回复
14
kris_fei| | 2016-2-1 09:00 | 只看该作者
460077234 发表于 2016-1-30 15:53
你看11楼发的东西。 我要是如何操作IO口,是内核封装好的。我在帖子里说了驱动框架我已经搭建好了,就差 ...

驱动写好之后用户空间肯定有个节点让你操作了,你直接操作节点read/write就可以了

使用特权

评论回复
15
460077234|  楼主 | 2016-2-1 09:48 | 只看该作者
kris_fei 发表于 2016-2-1 09:00
驱动写好之后用户空间肯定有个节点让你操作了,你直接操作节点read/write就可以了 ...

我都无语了,谢谢你的关注。我问的是如何操作IO口,是操作IO口。你用户层调用read、write底层不得实现功能么?我指的是功能。

使用特权

评论回复
16
kris_fei| | 2016-2-1 11:25 | 只看该作者
460077234 发表于 2016-2-1 09:48
我都无语了,谢谢你的关注。我问的是如何操作IO口,是操作IO口。你用户层调用read、write底层不得实现功 ...

你是说写寄存器?

使用特权

评论回复
17
dayqr| | 2016-2-1 13:54 | 只看该作者
楼主,莫急, 你看看 mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads, ARRAY_SIZE(mx6dl_sabresd_pads)); 就应该懂了

使用特权

评论回复
18
460077234|  楼主 | 2016-2-1 16:25 | 只看该作者
dayqr 发表于 2016-2-1 13:54
楼主,莫急, 你看看 mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads, ARRAY_SIZE(mx6dl_sabresd_pa ...

太感谢了,今天找个这个地方了,就是你说的这个。EIM功能除了DA13 DA14外别的都没问题,解决中。。

使用特权

评论回复
19
460077234|  楼主 | 2016-2-1 16:28 | 只看该作者
dayqr 发表于 2016-2-1 13:54
楼主,莫急, 你看看 mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads, ARRAY_SIZE(mx6dl_sabresd_pa ...

您有没有用过EIM这个功能呢? 我现在除了DA13、14别的都没有问题。

使用特权

评论回复
20
dayqr| | 2016-2-3 10:48 | 只看该作者
只是配置GPIO,其他功能暂时没用上

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝