(一):操作系统内核访问的主要设备:
(1):字符型设备:键盘,打印机
(2):数据块设备:软盘,硬盘,光盘
(二):linux设备驱动程序的主要功能:
(1):对设备进行初始化。
(2):使设备投入运行和退出服务
(3):从设备接收数据并将它们送向内核
(4):将数据从内核送到设备
(5):检测处理设备出现的错误。
(三):字符设备驱动程序:
(1)驱动程序的 init()函数的主要功能是在内核登记设备驱动程序。包括给这一
驱动程序使用的主设备号,同时给内核提供指向驱动程序的file_operation结构的
指针,内核将这一指针放在字符设备驱动程序表的相应表目中,通过下列的内核函数完成登记。
register_chrdev(major,name,file_op)
其中major是这一驱动程序使用的主设备号,name是字符串,它给出驱动程序的名称。
而file_op则是指向file_operation结构的指针。
(四):驱动程序的工作内存:
(1):专用缓冲区:
给设备驱动程序分配内存的最简单办法是在它的源程序中按所需的字节数加以说明
在源程序中说明数组:
static char buff[800];
在任何函数外面使用关键字static表示缓冲区只能由一文件中的代码所
使用, (既用于这一设备驱动程序内部)。
上面这样使用专用缓冲区有几个缺点:
(1):用这种方法分配的内存只能在驱动程序内部使用
(2):如果推测的容量比实际需要的容量少,无法增加工作内存的容量。
(3):即使你不使用它,如硬设备没有连上,这块内存还是分配给你使用。
时间: 2024-11-10 16:43:26