文档介绍:该【Linux驱动试题 】是由【泰山小桥流水】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【Linux驱动试题 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Linux驱动试题
笔试题:
1参照答案:字符设备是指存取时没有缓存的设备,大多数字符设备只好序次读写。比
如鼠标、键盘、声卡。
块设备的读写则都有缓存来支持,只好以块为单位进行读写,而且块设备一定可以随机存取
(randomaccess),即无论块处于设备的什么地方都可以对它进行读写,字符设备则没有这
个要求。比方硬盘、U盘、SD卡。
2、
参照答案:查察驱动中的打印信息用dmesg命令。
查察内核中字符设备和块设备信息可以使用命令cat/proc/devices。
查察正在使用的中断号可以使用命令cat/proc/interrupts。
、
参照答案:Linux内核是一种单一大内核,假如没有模块体系,在调试阶段,我们需要
更正内核中的某个驱动,一定把内核整个编译一遍,还要重新启动机器,这样操作会特别耗
时。有了模块,我们只需要对我们关怀的驱动以模块方式单独编译,不必编译整个内核,也
不需要重启机器。
、
参照答案:copy_to_user实现从内核空间向用户空间拷贝数据的功能。
copy_from_user实现从用户空间向内核空间拷贝数据的功能。分别用于实现驱动中的read
和write函数。假如交换数据都发生在内核空间中,可以直接使用内鉴定义的memcpy函
数。
、
参照答案:主设备号用于差别不一样的驱动程序,次设备号用于差别使用同一个驱动程序
的同一类设备中的不一样设备。chartest使用和ttyS0相同的驱动程序。
、
参照答案:register_chrdev(MAJOR_NUMBER,DRIVER_NAME,&xxx_fops)
该函数有三个参数,分别是主设备号,驱动名字和file_operations结构的指针
、
参照答案:中断是一段程序,当外面设备引起中断时由CPU执行。DMA是直接内存
接见,用于外设与主储存器之间快速的交换数据,利用DMA,在交换数据时可以不经过
CPU,提升了CPU的利用率。
注册中断使用request_irq(IRQ_NUMBER,(*handler),IRQ_FLAGS,DRIVER_NAME,
dev_id)。该函数共有5个参数,分别是要注册的中断号,中断办理程序的指针,中断标记
位,中断的名字和dev_id用于差别共享同一此中断的不一样设备。
注销中断使用free_irq(unsignedint,void*)第一个参数是中断号,第二个参数一般是
NULL指针。
、
参照答案:在一般状况下,因为数据量比较小,中断会比轮询更有效率。但是假如数据
量比较大的时候,假如采纳中断,因为CPU花在进度切换和保存现场上的时间开支变得比
较大,因此这个时候平时采纳轮询更有效率。
、
参照答案::,实现对以太网桢的发送和接
收。
Encoder/Decoder:Encoder/Decoder部分实现对曼彻斯特的编码/译码工作。
10Base-TRX/RXfilter&Receiver/Transmitter:实现对物理信号的发送和接收。
、
参照答案:发送数据frame:
接收数据frame:
,也就是IP层。
、
参照答案:发送数据frame的过程可能在线程的上下文中,关中断是为了保证数据发
送的一致性,而接收数据frame的过程主要在中断办理中,这个过程自己就是原子的,所
以不需要关中断。
、
参照答案:sk_buff是在Linux网络协议的各个层次上都用到的一个数据结构,目的是
防范数据的重复拷贝。sk_buff的分配由最初使用它的模块分配,而由最后使用它的模块进
行开释,详尽到网络设备来说,就是,发送的时候在网络协议的最高层,也就是TCP层负
责分配,而在设备驱动中当向硬件上发送完sk_buff中数据后开释sk_buff;而对于接受就
是在设备驱动的接收到以太网侦的时候分配sk_buff以容纳数据,而在最高层,也就是TCP
层负责开释。