开发板完整的AD驱动程序为什么没有file_operations结构?

发布于 2022-09-22 12:50:01 字数 184 浏览 15 评论 0

这是一个简单的驱动,request_irq(IRQ_ADC_DONE, adcdone_int_handler, SA_INTERRUPT,
   "ADC", NULL) 注册了驱动的中断处理函数,read函数通过中断处理函数唤醒执行。这个也只有一个read,实现上并不需要提供给上层什么操作了,所以就没有必要了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

梅窗月明清似水 2022-09-29 12:50:01

file_operations 是vfs的一部分。由于unix/linux对一般文件和设备文件一视同仁。
所以用户可以通过vfs访问设备。作为设备驱动,需要提供vfs访问设备的代码。
驱动需要向vfs注册回调函数。

这个驱动显然没有实现用户进程访问设备。

歌入人心 2022-09-29 12:50:01

内核自己偷着用~

隐诗 2022-09-29 12:50:01

对于这个case,应用程序并不需要来read它,实际上是没有提供给应用程序读它的接口,她只是通过DPRINTK("AIN[%d] = 0x%04x, %d\n", ain, ret, ADCCON & 0x80 ? 1:0);把读到的值打印出来而已。你可以对它进行改造,提供给应用程序一个接口。

难理解 2022-09-29 12:50:01

linux下面AD的驱动,是不是也是用read之类的系统调用来接口的?
一般来说AD又算什么设备?字符?还是别的

相思碎 2022-09-29 12:50:01

原帖由 wuyunzdh 于 2008-10-27 20:23 发表
谢谢dreamice !!
请问能不能通过手动使能中断来调用read函数?就是让系统产生相应的中断来调用read函数?

中断本身就是异步的,硬件产生的,你想用程序主动产生中断,恐怕不行,呵呵。
不过,系统调用倒是可以认为是主动中断,呵呵

春庭雪 2022-09-29 12:50:01

这段程序的目的是为其它驱动模块提供接口的如touchscreen或别的需要从ADC中读取数据的模块,不是要作成一个独立的字符设备驱动,肯定是会提供相应fops喽。 所以,你应该grep下看谁在调s3c2410_adc_read,同时注意s3c2410_adc_read返回值是ret & 0x3ff, 显然最高分辨率是10位滴。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文