首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >嵌入式Linux获取设备信息、查询方式、休眠-唤醒方式

嵌入式Linux获取设备信息、查询方式、休眠-唤醒方式

作者头像
韦东山
发布2022-05-05 15:54:01
发布2022-05-05 15:54:01
2.8K0
举报
文章被收录于专栏:韦东山嵌入式韦东山嵌入式

7.3.3 获取设备信息

通过 ioctl 获取设备信息,ioctl 的参数如下:

代码语言:javascript
复制
int ioctl(int fd, unsigned long request, ...);

有些驱动程序对 request 的格式有要求,它的格式如下:

比如 dir 为_IOC_READ(即 2)时,表示 APP 要读数据;为_IOC_WRITE(即 4)时,表示 APP 要写数据。

size 表示这个 ioctl 能传输数据的最大字节数。

type、nr 的含义由具体的驱动程序决定。

比如要读取输入设备的 evbit 时,ioctl 的 request 要写为“EVIOCGBIT(0, size)”,size 的大小可以由你决定:你想读多少字节就设置为多少。这个宏的定义如下:

7.3.4 查询方式

APP 调用 open 函数时,传入“O_NONBLOCK”表示“非阻塞”。 APP 调用 read 函数读取数据时,如果驱动程序中有数据,那么 APP 的 read 函数会返回数据,否则也会立刻返回错误。

7.3.5 休眠-唤醒方式

APP 调用 open 函数时,不要传入“O_NONBLOCK”。 APP 调用 read 函数读取数据时,如果驱动程序中有数据,那么 APP 的 read 函数会返回数据;否则 APP就会在内核态休眠,当有数据时驱动程序会把 APP 唤醒,read 函数恢复执行并返回数据给 APP。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7.3.3 获取设备信息
  • 7.3.4 查询方式
  • 7.3.5 休眠-唤醒方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档