网站大量收购独家精品文档,联系QQ:2885784924

linux驱动试题(答案).pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux 驱动试题 笔试题: 1 参考答案: 字符设备是指存取时没有缓存的设备,大多数字符设备只能顺序读写。比 如鼠标、键盘、声卡。 块设备的读写则都有缓存来支持, 只能以块为单位进行读写, 并且块设备必须能够随机存取 (random access) ,即不管块处于设备的什么地方都可以对它进行读写,字符设备则没有这 个要求。比如硬盘、 U 盘、 SD 卡。 2 、 参考答案:查看驱动中的打印信息用 dmesg 命令。 查看内核中字符设备和块设备信息可以使用命令 cat /proc/devices 。 查看正在使用的中断号可以使用命令 cat /proc/interrupts 。 3 、 参考答案: Linux 内核是一种单一大内核,如果没有模块机制,在调试阶段,我们需要 修改内核中的某个驱动, 必须把内核整个编译一遍, 还要重新启动机器, 这样操作会非常耗 时。有了模块,我们只需要对我们关心的驱动以模块方式单独编译,无须编译整个内核,也 不需要重启机器。 4 、 参考答案: copy_to_user 实现从内核空间向用户空间拷贝数据的功能。 copy_from_user 实现从用户空间向内核空间拷贝数据的功能。分别用于实现驱动中的 read 和 write 函数。 如果交换数据都发生在内核空间中,可以直接使用内核定义的 memcpy 函数。 5 、 参考答案: 主设备号用于区别不同的驱动程序, 次设备号用于区别使用同一个驱动程序 的同一类设备中的不同设备。 chartest 使用和 ttyS0 一样的驱动程序。 6 、 1 参考答案: register_chrdev(MAJOR_NUMBER, DRIVER_NAME, xxx_fops) 该函数有三个参数,分别是主设备号,驱动名字和 file_operations 结构的指针 7 、 参考答案:中断是一段程序,当外部设备引起中断时由 CPU 执行。 DMA 是直接内存 访问,用于外设与主存储器之间快速的交换数据,利用 DMA ,在交换数据时可以不通过 CPU ,提高了 CPU 的利用率。 注册中断使用 request_irq(IRQ_NUMBER, (*handler), IRQ_FLAGS, DRIVER_NAME, dev_id) 。该函数共有 5 个参数,分别是要注册的中断号,中断处理程序的指针,中断标志 位,中断的名字和 dev_id 用于区别共享同一个中断的不同设备。 注销中断使用 free_irq(unsigned int, void *) 第一个参数是中断号,第二个参数一般是 NULL 指针。 8 、 参考答案: 在一般情况下,由于数据量比较小, 中断会比轮询更有效率。但是如果数据 量比较大的时候,如果采用中断,由于 CPU 花在进程切换和保存现场上的时间开销变得比 较大,所以这个时候通常采用轮询更有效率。 9 、 参考答案: 802.3 MAC Engine :实现 802.3 协议的核心,实现对以太网桢的发送和接 收。 Encoder/Decoder :Encoder/Decoder 部分实现对曼彻斯特的编码 / 译码工作。 10Base-T RX/RX filter Receiver/ Transmitter :实现对物理信号的发送和接收。

文档评论(0)

一千零一夜 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档