新手:Linux下中断处理的疑问

发布于 2022-09-18 23:08:47 字数 720 浏览 12 评论 0

最近要写一个驱动,不过避免地要用到中断。看着网上的资料先做一个练习,发现2.4和2.6差异很大,而2.6的不同版本之前也有变化,如中断处理函数原来是三个参数,后来变为两个了,真是麻烦。

好,发完了牢骚,明确一下问题:
1. 原来中断处理函数最后一个参数是什么含义,为什么去掉了?
2. 有资料说对于共享的中断,如果不是自己处理的设备应该返回IRQ_NONE,否则返回IRQ_HANDLED,后续不再处理。但我把自己的中断代码挂到网卡驱动的中断上之后,不管返回哪一个,我的网卡收发数据还是通的,难道是网卡的驱动中断总是在前面执行并且之后返回了IRQ_NONE?我用的环境是Fedora8.0,在虚拟机中安装的,由于host是双网卡的,guest里面也是两个brigded双网卡。
3. 编译时总是有一个Warning:
.../my_test/myirqtest.c:34: 警告:‘deprecated_irq_flag’ 已过时(于 include/linux/interrupt.h:64 声明)
我看了一下interrupt.h的代码,它是用一个inline函数生成SA_SHIRQ的,应该是这个导致的(可能是GCC的自有机制吧,反正没看明白)。不知道这样是不是隐含着什么问题?

PS: 对于系统编程而言,Linux的Manual Pages已经很仔细了,但对于驱动开发而言,在Manual Pages中是找不到request_irq等函数的,而由于各版本差异比较大,网上找也很是费劲。不知道大家平时是如何解决这一问题的?

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

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

发布评论

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

评论(2

画骨成沙 2022-09-25 23:08:47

自己踢一下。这里居然还有字数限制。

溇涏 2022-09-25 23:08:47

再踢一下。

主要是想确认下大家如何解决开发驱动需要的资料问题。内核接口不稳定,而且还找不到相关的资料,如pci_alloc_consistent函数google了很久也没有一个具体的解释。

现在在对着别的人代码及LDD3看,但这本书中关于PCI的部分讲的也很含糊,许多函数都没有提到,而给的示例只是没多大用的。

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