- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LDD题库(答辩)
嵌入式系统驱动开发题库(35题)
硬件(8题):
1、请阐述下图Fig1中蜂鸣器电路的工作原理;如果将Q1变成PNP型三极管如何设计,有什么缺点?
Fig1.Beep Driver Circuit
GPB0输出高电平时NPN型三极管导通,蜂鸣器接电发声。
2)变成PNP型三极管:
改为PNP设计的话上电即响。
2、请根据Fig2阐述课程中键盘驱动的原理。
Fig2.键盘扫描电路
答:矩阵键盘由行信号和列信号组成矩阵。每个按键连接到行信号和列信号的交叉点。通过矩阵键盘控制器行信号线顺序逐行输出扫描脉冲,列信号线作为输入信号线。
3、请说出Fig3电路的原理,R38---R41电阻值的计算方法。
Fig3.LED发光二极管驱动电路
答:凭经验知发光二极管压降(2V)又知通电电流(20mA)所以电阻。
注:本题中
4、如何配置4412的GPIO—X3_2到X3_5口作为输入口?
先声明变量GPX3CON
声明变量GPX3CON=iomap(地址)
Writel((readl(x)(~((152*4)|(153*4)|(154*4)),GPX3CON);
*5、如何配置4412的GPIO—X3_2到X3_5口作为中断触发口?
6、如何配置4412的GPIO—X3_2到X3_5口作为输出口?
7、如何使4412的GPIO—X3_2到X3_3口输出低电平,GPIO—X3_4到X3_5口输出高电平。
8、4412端口有GPXCON、GPXDAT、GPXUP、GPXPUD三个寄存器,分别代表什么?
答:GPXCON为控制寄存器,GPXDAT为数据寄存器,GPXUP为上拉电阻寄存器,GPXPUD为下拉电阻寄存器。
Drivers:(27)
1、在驱动程序代码中module_init(func1),module_exit(func2)两个宏的作用是什么?
答:module_init加载Linux驱动和module_exit卸载Linux驱动。
2、请叙述下面的makefile中各个字段的含义
obj-m(-m指module) :=hello.o(目标)
注:设定编译目标为hello.o
CROSS_COMPILE = arm-linux-(宏)
CC = $(替换)(CROSS_COMPILE)gcc(宏)
KDIR :=/work/kernel/linux-2.6.24(kernel路径编译的代码树)
PWD :=$(shell pwd)(Makefile当前相对路径)
default:()(默认参数)
$(MAKE) -C $(KDIR) SUBDIRS(伪目标)=$(PWD) modules(用modules模式编译)
?注:编译、链接,子目录为PWD
clean:(clean命令)
rm -rf *.o* *~ core .depend .*.cmd *.ko *.mod.c
rm -rf .tmp_versions/
install:(install命令)
cp *.ko /work/rootfile/rootfs/lib/modules/2.6.24/
驱动代码中都会涉及到两个结构体,分别是struct file和struct inode,他们分别代表什么含义,而且在什么时候被创建?
答:
1)struct file表示一个打开的文件(文件的描述符)主要供与文件系统对应的设备文件驱动程序使用。
2)struct inode表示文件结点,因为对于单个文件而言可能会有许多个表示打开的文件的描述符,因而就可能会有多个个file对应一个inode。
3)由内核在open()时创建,并(将该文件描述符)传递给该文件上进行操作的所有函数,直到最后的close函数,在文件的所有实例都被关闭后,内核会释放这个数据结构。
4、class_create(); device_create();起什么作用?
答:class_create();为自动创建设备文件,device_create();为自动创建设备节点。
5、file_operations结构体一般都有那几个成员,作用都是什么?
答:
1.open:打开设备,如果这个项是 NULL, 设备打开一直成功, 但是你的驱动不会得到通知。
2.ioctl:控制命令,系统调用提供了发出设备特定命令的方法 。
3.write:写,发送数据给设备。
4.read:读,用来从设备中获取数据。
5.release:释放设备,可以为 NULL。
6、驱动程序中主次设备号分别代表什么?如果事先已经分配主次设备号,那么用什么宏取得dev_t类型的设备编号?反过来又如何取得主次设备号?
答:主设备号被系统用来确定驱动程序,次设备号被驱动程序用来确定具体的设备。
用MK
文档评论(0)