学习应该是一个先把问题简单化,在把问题复杂化的过程。一开始就着手处理复杂的问题,难免让人有心惊胆颤,捉襟见肘的感觉。读linux网卡驱动也是一 样。那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏便是理所当然的了。不要担心,事情总有解决的办法,先把一些我们管不着的代码切割出去,留下必 须的部分,把框架掌握了,哪其他的事情自然就水到渠成了,这是笔者的心得。 一般在使用的linux网卡驱动代码动辄3000行左右,...
一、前言 linux的中断宏观分为两种:软中断和硬中断。声明一下,这里的软和硬的意思是指和软件相关以及和硬件相关,而不是软件实现的中断或硬件实现的中断。 软中断就是"信号机制"。软中不是软件中断。linux通过信号来产生对进程的各种中断操作,我们现在知道的信号共有31个,其具体内容这里略过,感兴趣读者可参看相关参考文献[1]。一般来说,软中断是由内核机制的触发事件引起的(例如进程运行超时),但是不可忽视有大量的软...
我的毕业论文做个U盘驱动(linux已经实现),我只是分析而已。 各位DX,我想弄清楚linux下 /drives/usb/storage下代码结构,谁有这方面的分析报告啊! 救救我! dqwjack@163.com
最近想看看liunx内核方面的书籍和驱动开发 的。不知那几本书写得不错,适合有点小基础的人看看,,不过现在还不知道那几本好,希望各位大侠推荐几本,十分感谢!!
四、中断处理程序 linux中的中断处理程序很有特色,它的一个中断处理程序分为两个部分:上半部(tophalf)和下半部(bottom half)。之所以会有上半部和下半部之分,完全是考虑到中断处理的效率。 上半部的功能是"登记中断"。当一个中断发生时,他就把设备驱动程序中中断例程的下半部挂到该设备的下半部执行队列中去,然后就没事情了--等待新的中断的到来。这样一来,上半部执行的速度就会很快,他就可以接受更多她负责的设备产生的...
六、中断处理程序的不可重入性 上一节中我们提到有时候需要屏蔽中断,可是为什么要将这个中断屏蔽掉呢?这并不是因为技术上实现不了同一中断例程的并行,而是出于管理上的考虑。之所以在中断处理的过程中要屏蔽同一IRQ来的新中断,是因为中断处理程序是不可重入的,所以不能并行执行同一个中断处理程序。在这里我们举一个例子,从这里子例中可以看出如果一个中断处理程序是可以并行的话,那么很有可能会发生驱动程序锁死的情况。当...
请问在linux下,有没有下面这个驱动?? 00:10.2 Multimedia audio controller: nVidia Corporation MCP51 AC97 Audio Controller (rev a2) Subsystem: nVidia Corporation: Unknown device cb84 Flags: bus master, 66Mhz, fast devsel, latency 0, IRQ 23 I/O ports at dc00 [size=256] I/O ports at d800 [size=256] Memory at fe02c000 (32-bit, non-prefetchable) [size=4K] ...