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

[复制链接]
 楼主| 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设备驱动开发方面的书籍
 楼主| 460077234 发表于 2016-1-22 17:12 | 显示全部楼层
来回复吧友们 首先谢谢你们来捧场。我的问题不在驱动上。驱动框架我已经搭建完了。就差在IOCTL里边调用把 任意一个IO口的管脚置高或者置低的函数。 很多人都说linux内核里边已经把寄存器配置好了,函数也封装好了,调用就行,但是函数在哪里呢? 我需要直接告诉我调用哪些函数可以操作IO口就行了。
 楼主| 460077234 发表于 2016-1-22 17:14 | 显示全部楼层
内核版本 3.0.35
ccw1986 发表于 2016-1-22 21:06 | 显示全部楼层
还是先找一个Linux的例子把简单的IO读写学会了吧
btrace 发表于 2016-1-23 10:28 | 显示全部楼层
460077234 发表于 2016-1-22 17:12
来回复吧友们 首先谢谢你们来捧场。我的问题不在驱动上。驱动框架我已经搭建完了。就差在IOCTL里边调用把  ...

直接读写文件啊,驱动都写出来了read&write不知道?
mini1986 发表于 2016-1-25 08:22 | 显示全部楼层
460077234 发表于 2016-1-22 16:31
驱动已经写完了啊。怎么操作IO口呢。随便一个IO口拉高 置低。

应用层read/write就可以了......
kris_fei 发表于 2016-1-25 15:16 | 显示全部楼层
不是没人帮你解决,你看上面这么多人已经告诉你答案了。
既然你学开发了,这么点好学精神应该有的,这个是驱动开发最基本的东西了,难道你希望别人手把手教你吗?
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);

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

你看11楼发的东西。 我要是如何操作IO口,是内核封装好的。我在帖子里说了驱动框架我已经搭建好了,就差直接操作IO的函数了。
 楼主| 460077234 发表于 2016-1-30 15:54 | 显示全部楼层
dayqr 发表于 2016-1-28 11:31
我发点干货吧!曾经也被困扰
#define EIM_DA0              IMX_GPIO_NR(3, 0)          

谢谢,确实是我需要的,我想多问一句,管脚功能配置成IO口模式 如何配置呢?
kris_fei 发表于 2016-2-1 09:00 | 显示全部楼层
460077234 发表于 2016-1-30 15:53
你看11楼发的东西。 我要是如何操作IO口,是内核封装好的。我在帖子里说了驱动框架我已经搭建好了,就差 ...

驱动写好之后用户空间肯定有个节点让你操作了,你直接操作节点read/write就可以了
 楼主| 460077234 发表于 2016-2-1 09:48 | 显示全部楼层
kris_fei 发表于 2016-2-1 09:00
驱动写好之后用户空间肯定有个节点让你操作了,你直接操作节点read/write就可以了 ...

我都无语了,谢谢你的关注。我问的是如何操作IO口,是操作IO口。你用户层调用read、write底层不得实现功能么?我指的是功能。
kris_fei 发表于 2016-2-1 11:25 | 显示全部楼层
460077234 发表于 2016-2-1 09:48
我都无语了,谢谢你的关注。我问的是如何操作IO口,是操作IO口。你用户层调用read、write底层不得实现功 ...

你是说写寄存器?
dayqr 发表于 2016-2-1 13:54 | 显示全部楼层
楼主,莫急, 你看看 mxc_iomux_v3_setup_multiple_pads(mx6dl_sabresd_pads, ARRAY_SIZE(mx6dl_sabresd_pads)); 就应该懂了
 楼主| 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外别的都没问题,解决中。。
 楼主| 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别的都没有问题。
dayqr 发表于 2016-2-3 10:48 | 显示全部楼层
只是配置GPIO,其他功能暂时没用上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

42

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部