您当前的位置: 首页 >  嵌入式

韦东山

暂无认证

  • 0浏览

    0关注

    506博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

韦东山 发布时间:2020-11-19 09:44:39 ,浏览量:0

在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taobao.com/ (淘宝)      https://weidongshan.tmall.com/(天猫) 交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载) 交流群二:QQ群:536785813(单片机-嵌入式) 公 众 号:百问科技

版本日期作者说明V12020韦东山摘自《嵌入式Linux应用开发完全手册》 7.3.3 获取设备信息

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

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。

关注
打赏
1658827356
查看更多评论
立即登录/注册

微信扫码登录

0.0366s