【问题标题】:How to get event file /dev/input/event* in linux如何在 linux 中获取事件文件 /dev/input/event*
【发布时间】:2014-02-20 06:33:57
【问题描述】:

我是 linux 新手,正在从事一个项目,其中包括一些 gpios 连接到我的 calixto 板,基于该板我正在执行我从 sys/class/gpio*/value 获取的操作并放入一个 while 循环但是它消耗大量资源,所以我想让它基于事件,即如何从 /dev/input/event* 文件中获取事件以及在创建 uImage 期间需要在内核中完成哪些配置,提前致谢。

【问题讨论】:

  • 您可能会解释为什么要基于事件以及您认为它是什么。不确定您的硬件(未提及)是否将 IO 映射到那些人工输入设备事件,如果是,请在链接末尾找到一些提示:kernel.org/doc/Documentation/input/input.txt

标签: linux embedded


【解决方案1】:

事件由输入设备创建,而不是直接由 GPIO 创建。 (请记住,其他事件源可能包括鼠标、键盘、触摸屏和操纵杆等。)从 GPIO 创建输入设备的最简单方法是声明gpio_keys 平台设备,或者通过在您的设备树(如果您使用的是设备树),或者通过编辑您的电路板配置文件(如果没有)。详细信息在很大程度上取决于您使用的确切平台。

在这个网站上有一个简短的演练 - 它适用于与您正在使用的不同的硬件,但原理相似:http://www.armadeus.com/wiki/index.php?title=GPIO_keys

【讨论】:

  • 我已经根据给定的示例对我的两个文件(即 board-calixto-evm.c 和 board-da850-evm.c)进行了更改,但我不明白如何创建节点和从在哪里获取我的 gpio 的代码 = BTN_EXTRA,这些 gpio 连接到我的 gpio 引脚是 48,49,......55。我想要的是,当我按下我的 gpio 键 48 时,它的输入必须在 /dev/input/event 文件中可见,我将从那里读取值并完成我的工作。我在内核编译期间也进行了更改,但没有目录,即 gpio48,......gpio55 以及我将如何测试按下时 gpio 是否工作。
  • 我是否必须使用 pinmux 做某事,因为我的驱动程序通过使用 /proc/bus/input/devices 可见
【解决方案2】:

如果您的意思是使用 Asyc Access,我认为以下是一个好的开始:

https://developer.ridgerun.com/wiki/index.php/How_to_use_GPIO_signals

【讨论】:

  • 我已经根据给定的示例对我的两个文件(即 board-calixto-evm.c 和 board-da850-evm.c)进行了更改,但我不明白如何创建节点和从在哪里获取我的 gpio 的代码 = BTN_EXTRA,这些 gpio 连接到我的 gpio 引脚是 48,49,......55。我想要的是,当我按下我的 gpio 键 48 时,它的输入必须在 /dev/input/event 文件中可见,我将从那里读取值并完成我的工作。我在内核编译期间也进行了更改,但没有目录,即 gpio48,......gpio55 以及我将如何测试按下时 gpio 是否工作
  • 我是否必须使用 pinmux 做某事,因为我的驱动程序通过使用 /proc/bus/input/devices 可见
  • 我在calixto.co.in/products.html 的主页上没有看到任何指定 GPIO 功能的产品 - 你能更具体地说明你有什么类型的 USB 设备吗?如果设备显示的方式与示例不同,则可能是它需要不同的方法 - 它是特定于设备(类)的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 2014-09-20
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
相关资源
最近更新 更多