首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程化:在ARM cortex A8上运行USB键盘

问线程化:在ARM cortex A8上运行USB键盘
EN

Stack Overflow用户
提问于 2012-08-03 17:50:25
回答 3查看 373关注 0票数 0

我是第一次接触Emebedded Linux。我想使用我的USB键盘使用线程..我知道线程的概念,但我想知道如何使用线程的概念来检测它。?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-10 23:49:25

如果你不想使用非阻塞I/O来读取键盘,你可以使用一个线程来执行阻塞读取,并在输入可用时向你的主线程发送信号(或者设置一个它可以轮询的标志)。

除了阻塞之外,您可能还需要处理线路模式的默认设置。

在单线程程序中轮询或响应过于单一的字符的常见选择是更改终端模式设置-请参阅termios、stty等的手册页。但是,如果您的程序退出,则需要将它们更改回来。

另一种选择是跳过整个终端基础设施,直接通过/dev/ input /读取输入事件。或者在极端情况下,您可以跳过USB HID驱动程序,为USB键盘编写自己的内核驱动程序。

票数 1
EN

Stack Overflow用户

发布于 2012-08-08 21:24:40

如果我没记错的话,你有一个嵌入式linux板,现在你想连接一个USB键盘,并在嵌入式linux板上的应用程序中使用它?如果这是正确的,那么你不需要对线程做任何事情。您需要做的是为该键盘安装驱动程序。为此,您应该查看内核构建配置,以查看是否启用了USB键盘驱动程序(HID驱动程序)。

票数 1
EN

Stack Overflow用户

发布于 2014-10-10 16:45:26

您可以根据自己的需求使用以下任一选项:

  1. blocking I/O
  2. non-blocking I/O

(阻止#en0#/O中断)

对于非阻塞I/O,可以尝试基于多线程的方法。对于阻塞的I/O,可以尝试基于epoll()系统调用的方法。

关于检测键盘的方法,您可以尝试以下方法:

输入设备使用文件/proc/

  • //
  1. 来检测设备上的事件,但是直到您在特定的systems.
  2. Detect中使用/dev//
    1. 和ioctl()调用来检测事件位之后,它才会更新。event接口非常有用,因为它将原始事件公开给用户空间。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11793331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档