华清 - - 初级驱动试题
更新时间:2023-12-02 03:06:01 阅读量: 教育文库 文档下载
- 华清归藏密室怎么解开封印推荐度:
- 相关推荐
驱动基础试题(时间:1个小时)
一、 选择题(每题 4 分,共 40 分,包括单选和多选,多选、少选均不得分)
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 [B] kmalloc [C] vmalloc [D] malloc
10. Linux系统中通过add_timer 添加的timer是( A )
[A] 一次的 [B] 循环的
1
[C] 以上两种都可以
二、简答题(每题 6 分,共60 分)
1. Linux系统中以模块方式组织设备驱动程序,请列举在一个模块程序中必不可少的组成部分。 (可以写个Hello world模块的程序) #include
static int __init fsmod_init(void) {
printk(KERN_INFO \ return 0; }
static void __exit fsmod_exit(void) { printk(KERN_INFO \}
module_init(fsmod_init); module_exit(fsmod_exit);
MODULE_LICENSE(\
MODULE_AUTHOR(\MODULE_DESCRIPTION(\
2. 请从定义、性质、操作方式等方面对比说明字符设备和块设备。 属性/类别 块设备 字符设备 访问单位/次 有固定大小 无固定大小 随机访问(lseek) 支持 不支持 用户直接访问 不可以 可以 驱动程序 复杂 相对简单 字符设备指哪些必须以串行顺序依次进行访问的设备,字符设备不经过系统系统的快速缓冲,而块设备经过系统的快速缓冲。
3. 请列举Linux设备驱动程序中,中断底半步机制。
Tasklet,工作队列,软中断
4. 简述Linux设备驱动中使用中断的步骤。 request_irq,申请irq;free_irq,释放irq。
另:申请中断 使能或者屏蔽中断 设置中断处理函数 释放中断 5. 简述信号量和自旋锁的异同和使用时的注意事项。
信号量和自旋锁都是解决互斥问题的基本手段,信号量的实现依赖于自旋锁。使用信号量机制时,进程若不能获得信号量,进程不会如自旋锁那样原地打转,而是让进程进入休眠
2
等待状态。 当使用信号量的开销时间T1大于使用自旋锁的开销T2时,宜使用自旋锁,若T2大于
T1,则宜使用信号量。由于信号量所保护的临界区可能包含引起阻塞的代码,而自旋锁则绝对要避免用来保护这样的代码。信号量存在于进程上下文,而如果被保护的资源需要在中断或者软中断情况下使用,则只能选择自旋锁。 详见linux设备驱动详解(宋宝华第二版)P155
6. 简述命令 mknod /dev/zero c 1 5 的做用和命令各个部分的含义,并写出创建一个块设备节点的命令。
mknod,该命令用于创建设备节点。/dev/zero 表示设备节点创建的目录和名字,c 代表创建的设备节点为字符设备节点,1 代表主设备号,5 代表此设备号。
创建块设备节点的命令: mknod /dev/one b 200 0
7. 简述命令insmod,rmmod,lsmod 的功能。
insmod:加载驱动模块到内核;rmmod:从内核删除驱动模块; lsmod:查看当前内核包含哪些驱动模块。
8. 驱动程序中采用动态申请设备号的,我们如何得到对应设备的设备号?
cat proc/dervices
9. 简述设备驱动程序和普通应用程序的异同点。
不同点:驱动运行于内核,应用程序在用户空间;应用程序能调用C库;应用程序顺序执行,驱动被动的接受调用;应用程序的栈很大,驱动很小,通常4k;应用程序可以做浮点运算,驱动中很少做浮点运算(并不是绝对不能)。
10. 简述如何将一个字符设备驱动改造为platform驱动,并说明匹配的过程。
首先:定义一个platform_driver结构体,对probe和remove函数指针进行初始化,对driver里面的成员.owner,.name进行初始化;
第二:在模块的初始化函数中调用platform_drive_registe()初始化这个驱动,在卸载模块中调用platfrom_driver_unregister()注销这个驱动;
第三:将驱动中实用的设备资源信息通过传递进来的platform_device结构体指针获取。 还有平台设备添加,一种是:用platform_device手动编码;另一种是在设备树中添加一个节点。
匹配过程:一种是:如果是平台设备与平台驱动的匹配以名字匹配,平台总线将会遍历对方,如果名字相同,则调用平台驱动的probe函数,并且将匹配上的平台设备的结构体指针传给设备函数;另一种是:去匹配设备树中的设备节点里面的兼容属性的值,匹配上则调用平台驱动的probe函数,并且将匹配上的平台设备的结构体指针传给设备函数。
3
正在阅读:
华清 - - 初级驱动试题12-02
平凡的英雄作文300字07-07
人教版八年级物理下册11.4机械能及其转化教案(7)04-28
会计实务考前押题三05-17
棉纺工艺设计07-06
雷达线性调频信号(LFM)脉冲压缩04-09
生命需要放开心怀作文800字07-04
我的小愿望日记10-29
人力资源培训与开发(B)卷09-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 华清
- 初级
- 试题
- 驱动
- 八年级物理下册 第六章 第5节二力平衡教案 新版鲁教版
- 小学实验室危险化学品管理
- K147+340涵洞就地制作涵洞涵身
- 怎样提高农村小学英语教学的有效性
- 2013-2014学年度七年级下册思想品德期中测试A卷-2.doc
- 贵州省贵阳清镇北大培文学校高中英语必修一导学案(无答案)Unit1 period 4 using the language
- 2012学年第一学期期中“六校联考”八年级(上)科学试卷
- 小升初数学分班考试题及答案
- 医学文献检索上机试题
- 物理知识点高中物理《交变电流》教案6 新人教版选修3-2
- 浙江省计划生育药具工作管理办法实施细则
- 驾驶台值班须知
- 中国汤料行业市场调查研究报告(目录) - 图文
- 文其村--运用情感教育 促进英语教学
- 2016年中秋节国庆节廉政谈话会讲话稿
- 离骚情景式名句默写
- 国际(地区)合作研究项目
- 嵌入式开发环境搭建 - 基于ubuntu10.04
- 2015香港特别行政区基层公共基础知识最新考试试题库(完整版)
- 2011—2012学年第2学期10级旅游管理(餐饮服务与管理)A卷(刘振球)