在linux中编写设备驱动程序 - 中断处理程序

时间:2012-12-28 13:01:11

标签: linux-device-driver

我正在尝试编写一个可加载的设备驱动程序..它能够对外部事件起作用。请澄清以下几点。

1> modprob命令用于向内核添加删除模块。它适用于静态模块吗? 可以modprobe或rmmod ---删除linux内核的静态模块。

2 - ;如果中断到来,我会保存数据&安排下半部分。现在,当下半部分完成其任务时,如何通知用户空间的应用程序数据可用。

3>我想在debugfs中使用entry来在application和amp;之间传输数据。驱动程序。所以我的设备驱动程序&我的用户空间应用程序 - 通过使用MAP()系统调用映射debufs&中文件的相同区域。彼此之间交换数据?

1 个答案:

答案 0 :(得分:0)

  

modprob命令用于向内核添加删除模块。它适用于静态模块吗?可以modprobe或rmmod ---删除linux内核的静态模块。

如果你的意思是静态模块=作为linux内核的一部分编译的模块(而不是作为单独的可加载模块),那么答案是;不,你不能。

  

如果出现中断,我将保存数据和安排下半部分。现在,当下半部分完成其任务时,如何通知用户空间的应用程序数据可用。

如果用户空间应用程序以轮询模式运行,您可以通过ioctl或sysfs / procfs文件通知它。但如果需要以事件驱动程序方式通知用户空间应用程序,则使用netlink socket。

  

我正在考虑在debugfs中使用entry来在application&amp ;;之间传输数据。驱动程序。所以我的设备驱动程序&我的用户空间应用程序 - 通过使用MAP()系统调用映射debufs&中文件的相同区域。彼此之间交换数据?

用户空间应用程序读/写debugfs的方式是简单地读取/写入debugfs文件(它位于/ proc / ..或/ sys / ..下,因此您可以“打开”该文件,获取文件描述符,然后读/写 - 好像它是一个普通文件。)