用户态怎样调用驱动里的函数
想请教下:在用户态应用程序中怎样调用驱动里写的函数?ioctl方式好像可以,除了它还有没有其他的方式可以实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
想请教下:在用户态应用程序中怎样调用驱动里写的函数?ioctl方式好像可以,除了它还有没有其他的方式可以实现?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
自己搞个系统调用
用系统调用的话要修改内核那样估计很麻烦
不知道你所谓的调用是什么意思?
用户空间的程序,要访问具体的硬件设备,当然是要通过具体的系统调用,最终调用特定的驱动程序才可以访问。
如果你指的是用户空间要与系统空间的通信的实现的话,那有很多种方式。
是这样的,我要为应用程序提供一些API函数来操作硬件的某些寄存器接口,如果我直接写这些API函数而不在驱动里写,那么这些API处于用户态应该不能够直接来内核态寄存器接口,我想法是在驱动里写好这些操作寄存器接口的函数,然后在用户态的API函数调用驱动里的这些操作寄存器接口的函数。你有什么有好的建议?
用户空间要与系统空间的通信的实现的话,那有很多种方式。你指的是如copy_to_user copy_form_user等吗?这个如果用ICOTL可能用的着
你这个操作用ioctl是比较合理的,用户空间和内核空间的通信问题,在这里讨论就比较复杂了。包括:模块启动参数,sysfs,proc文件,netlink等等。
但ioctl在驱动程序中的实现,需要对应用户空间的接口函数的参数,操作什么样的寄存器,传什么样的值等等。
重发发帖啊。