Linux驱动源码怎么和硬件联系???

我知道linux驱动是模块化的:有很多内核API可以调用;这些驱动insmod到内核里面就可以和内核联系了;因为它调用的是内核API;但是它怎么和驱动硬件的呢?我学过单片机;知道汇编;写寄存器;把寄存器设置成什么就是什么用处!也做过ARM9开发办的裸板驱动4个LED管;
裸板驱动我知道怎么写;linux驱动我也知道怎么写;但是怎么把linux驱动源码和具体的硬件联系呢?

你要知道 “硬件” 对程序来说是没有任何意义的,程序是个抽象的东西,程序怎么可能控制硬件呢?

不管你的硬件有多复杂,最终都是要通过信号来操控的。那么这个信号怎么传递呢?就要通过总线。你的硬件总要连接在什么总线上的,比如说串口,裸板串口就直接连接在 IO 脚上,Linux 上一般 IO 脚是很稀缺的,就在其它总线分出一些时序给串口,那么最后你的程序是只需要和总线打交道就可以了。对于总线来说,IO 就是发送数据包,接收数据包,数据包又可能分为控制的,载荷的等等,数据包上面又有设备的地址,和发送给设备的控制消息等等。追问

linux驱动总有控制硬件或者(设置硬件)寄存器的源码部分吧?我现在就是想找到这部分源码看看……再看看硬件的数据手册……是怎么设置的……把linux驱动和底层硬件贯通起来……我也知道软件源码最终会编译成二进制信号……二进制信号最终会转化成直流电信号的高低电平……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-16
linux驱动总有控制硬件? 有,不过,你都会写了还不懂?? 如果你看linux2.4的就可以看得出来,2.6内核就多了总线设备驱动,控制硬件那部分被封装的比较底层
第2个回答  2012-10-11
如题,本人安装了REDHAT LINUX,但不知道有哪些硬件的驱动程序没有安装,我如何才能查看这些没有安装驱动程序的硬件呢
相似回答