PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。
在Linux 系统中,并不是只有Cpu是智能设备,每个物理设备都拥有自己独立的控制器,键盘,鼠标和串行口由一个高级I/O芯片统一管理,IFDEF控制器控制IFDEF硬盘而SCSI控制器控制SCSI硬盘等等。每个硬件控制器都有自己的控制状态寄存器(CSR)并且各不相同。这些寄存器用来启动,停止,初始化设备以及对设备统一管理。在Linux中管理硬件设备控制器的代码并没有放置在每个应用程序中而是由内核统一管理,这些处理和管理员硬件控制器的软件就是设备驱动程序。
Linux设备驱动程序的主要功能是有以下几项:
1,对设备进行初始化。
2,使设备投入运行和退出服务。
3,将数据从内核送到设备。
4,检测少处理设备出现的错误。
Linux驱动程序的几个通用函数为:1,Open()函数。2,Release()函数。3,特殊的控制函数Ioctl()。
Linux中,设备驱动程序是一组相关函数的集合,它包含设备服务程序和中断处理程序。设备服务子程序包含了所有与设备相关的代码,每个设备服务子程序只处理一种设备或者是与其紧密相关的设备,其就是从与设备无关的软件中接受抽象的命令并执行。当执行一条请求时,具体操作是根据控制器对驱动程序提供的接口(控制器中的各种寄存器),利用中断机制去调用中断服务子程序配合设备来完成这个请求。设备驱动程序利用结构File_operation与文件系统联系起来,设备的各种操作的入口函数在File_operation中。
Linux Pci 驱动开发
最新推荐文章于 2025-05-11 07:25:51 发布