1.驱动程序做用:异步
·设备驱动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序能够像操做普通文件同样操做外部设备。Linux操做系统抽象了对硬件的处理,可使用和操做文件相同的,标准的系统调用接口来完成打开,关闭,读写喝I/O控制操做,而驱动程序主要任务也就是实现这些系统调用函数。函数
·每一个设备文件对应两个设备号,其中主设备号标识设备种类,也标识了设备所使用的驱动程序;次设备号标识使用同一设备驱动程序的不一样硬件设备。设备文件的主设备号必须与设备驱动程序在登录该设备时申请的主设备号一致,不然用户进程没法访问到设备驱动程序。spa
2.块设备与字符设备的区别:操作系统
·两者之间区别仅仅在于内核与驱动程序之间的软件接口上,块设备利用一块系统内存做为缓冲区,当用户进程对设备进行读写请求时,驱动程序先查看缓冲区的内容,若是能知足用户要求,则返回相应数据,不然调用相应请求函数进行实际I/O操做。接口
3. DMA循环缓冲区的分配与实现:队列
·对于高速数据信号的采集处理,须要在驱动程序的初始化模块(probe)中申请大量的DMA循环缓冲区,申请的大小直接关系着可否实时对高速数据处理的成败。直接内存访问(DMA)是一种硬件机制,容许外围设备和主内存直接直接传输I/O数据,避免了大量的计算开销。进程
4. Linux内核的内存分区段:内存
·三个区段,可用于DMA的内存,常规内存以及高端内存。ci
·一般的内存分配发生在常规内存区,可是经过设置内存标识也能够请求在其余区段中分配。可用于DMA的内存指存在于特别地址范围内的内存,外设能够利用这些内存执行DMA