初级驱动试题 下载本文

内容发布更新时间 : 2024/5/29 21:59:25星期一 下面是文章的全部内容请认真阅读。

驱动基础试题(时间:1个小时)

一、 选择题(每题 4 分,共 40 分,包括单选和多选,多选、少选均不得分)

1、( )2、( )3、( )4、( )5、( )

6、( )7、( )8、( )9、( )10、( )

1. Linux系统中将设备进行分类管理,下列设备中( ACD )属于字符设备,( BC )属于块设备 [A] 键盘 [B] 硬盘 [C] 闪存设备 [D] 帧缓存设备 [E] 网卡 2. Linux系统中,内核以(D )区分设备

[A] 设备节点名 [B] 设备类名称 [C] 设备名称 [D] 设备号

3. Linux系统中设备节点可以创建在(D )

[A] /dev目录下 [B] 根目录下 [C] /tmp目录下 [D] 以上都可以 4. Linux驱动程序运行在( A )

[A] 内核空间 [B] 用户空间 [C] 内核空间和用户空间

5. Linux系统中设备驱动程序是以模块形式组织的,编译驱动时可以用哪种方式编译( AB )

[A] 静态编译进内核 [B] 动态编译

6. Linux 2.6.35 内核中,设备的主设备号用( B )位来表示,次设备号用( D)位来表示

[A]8 [B] 12 [C]16 [D] 20 [E] 24 [F] 32

7. Linux系统中哪些种类的设备有设备节点( BC )

[A] 定时器 [B] 字符设备 [C] 块设备 [D] 网络设备

8. 通常情况下,kmalloc函数能分配的最大内存是( c )

[A] 4K [B] 64K [C]128K [D] 4M

9. 能保证物理空间上连续的内存分配函数是( AB )

[A]__get_free_pages

1

[B] kmalloc [C] vmalloc [D] malloc

10. Linux系统中通过add_timer 添加的timer是( a )

[A] 一次的 [B] 循环的

[C] 以上两种都可以

二、简答题(每题 6 分,共60 分)

1. Linux系统中以模块方式组织设备驱动程序,请列举在一个模块程序中必不可少的组成部分。 (可以写个Hello world模块的程序)

2. 请从定义、性质、操作方式等方面对比说明字符设备和块设备。

3. 请列举Linux设备驱动程序中,中断底半步机制。

4. 简述Linux设备驱动中使用中断的步骤。

2

5. 简述信号量和自旋锁的异同和使用时的注意事项。

6. 简述命令 mknod /dev/zero c 1 5 的做用和命令各个部分的含义,并写出创建一个块设备节点的命令。

7. 简述命令insmod,rmmod,lsmod 的功能。

8. 驱动程序中采用动态申请设备号的,我们如何得到对应设备的设备号?

3