电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

linux驱动工程师面试题整理

linux驱动工程师面试题整理_第1页
1/33
linux驱动工程师面试题整理_第2页
2/33
linux驱动工程师面试题整理_第3页
3/33
页脚内容11、字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的文件?答:mknod 命令结合设备的主设备号和次设备号,可创建一个设备文件。评:这只是其中一种方式,也叫手动创建设备文件。还有 UDEV/MDEV 自动创建设备文件的方式,UDEV/MDEV 是运行在用户态的程序,可以动态管理设备文件,包括创建和删除设备文件,运行在用户态意味着系统要运行之后。那么在系统启动期间还有 devfs 创建了设备文件。一共有三种方式可以创建设备文件。2、写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?答:中断处理例程应该尽量短,把能放在后半段(tasklet,等待队列等)的任务尽量放在后半段。评:写一个中断服务程序要注意快进快出,在中断服务程序里面尽量快速采集信息,包括硬件信息,然后推出中断,要做其它事情可以使用工作队列或者 tasklet 方式。也就是中断上半部和下半部。第二:中断服务程序中不能有阻塞操作。为什么?大家可以讨论。第三:中断服务程序注意返回值,要用操作系统定义的宏做为返回值,而不是自己定义的 OK,FAIL之类的。3、自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?答:使用自旋锁的进程不能睡眠,使用信号量的进程可以睡眠。中断服务例程中的互斥使用的是自旋页脚内容2锁,原因是在中断处理例程中,硬中断是关闭的,这样会丢失可能到来的中断。页脚内容34、原子操作你怎么理解?为了实现一个互斥,自己定义一个变量作为标记来作为一个资源只有一个使用者行不行?答:原子操作指的是无法被打断的操作。我没懂第二句是什么意思,自己定义一个变量怎么可能标记资源的使用情况?其他进程又看不见这个变量评:第二句话的意思是:定义一个变量,比如 intflag=0;if(flag==0){flag=1;操作临界区;flag=0;}这样可否?5、insmod 一个驱动模块,会执行模块中的哪个函数?rmmod 呢?这两个函数在设计上要注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?答:insmod 调用 init 函数,rmmod 调用 exit 函数。这两个函数在设计时要注意什么?卸载模块时曾出现卸载失败的情形,原因是存在进程正在使用模块,检查代码后发现产生了死锁的问题。页脚内容4评:要注意在 init 函数中申请的资源在 exit 函数中要释放,包括存储,ioremap,定时器,工作队列等等。也就是一个模块...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

linux驱动工程师面试题整理

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部