- 博客(6)
- 收藏
- 关注
原创 linux应用与驱动之间的通讯--驱动篇
对于非阻塞,驱动程序在应用程序调用read时,提供驱动程序的drv_read,所以主要判断传入的参数,在drv_read函数中,判断file->flag是否为O_NONBLOCK即可。首先我们要明白,应用程序是不能直接操作内核的,由于写应用程序的人水平参差不齐,又或是动机不良,直接允许应用程序操作内核是件危险的事。对于阻塞,只要传入的flag不为O_NONBLOCK即可,当无数据时,程序会进入休眠,直到被唤醒。④当有数据时,比如当按下按键时,驱动程序的中断服务程序被调用,它会记录数据、唤醒APP;...
2022-07-18 14:40:35
1200
原创 linux应用与驱动之间的通讯--应用篇
与非阻塞方式相反,在应用获取驱动返回的数据时,有数据立即返回,无数据则休眠,等到数据到来,将其唤醒。在应用程序中,APP调用open函数时,传入“O_NONBLOCK”表示“非阻塞”所谓异步通知,就是APP处理自身的事情,当驱动程序有数据时它会主动给APP发信号。与阻塞方式相反,在应用获取驱动返回的数据时,不管此时驱动有没有数据,都立即返回。POLL机制、SELECT机制是完全一样的,只是APP接口函数不一样。...
2022-07-15 11:17:51
1021
原创 如何在linux下使用自带GPIO模拟I2C的驱动
本文以百问网imx6ull pro为例,进入目录使用vi .config 指令查看有没有编译CONFIG_I2C_MUX_GPIO可以看到#CONFIG_I2C_MUX_GPIO is not set所以我们使用make menuconfig 命令配置/ I2C_GPIO搜索一下 ,可以看到具体的位置进入这个位置,输入M将他配置编译成模块,当然你也可以配置编译进内核保存退出根目录下写入下面的设备树代码可以根据你自己的板子,修改gpios里的引脚 ,以及delay-us里的频率,这里5指的是
2022-07-13 10:45:27
1558
原创 记录学习linux驱动-i2c设备驱动
在linux下访问i2c设备,可以使用在用户层使用i2c-tool工具,越过驱动程序直接使用i2c-adapter驱动访问,也可以自己编写中间层驱动,在驱动中调用i2c-adapter驱动提供的函数。本文介绍了i2c中间层驱动框架,i2c-adapter驱动将会在后续文章中写出。......
2022-07-07 15:50:37
618
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人