几个Linux驱动面试题目

        这几天面试几个想做安卓Linux驱动的,总体感觉上驱动基础还是比较薄弱,大部分情况是虽然做过驱动,但是基本上都是采用内核现成的,或者是开发板上已经有的,单独写过模块驱动很少,驱动机制理解不是很透彻.以下是几个随口问过的基础问题,供参考.


1、字符型驱动设备你是怎么创建设备文件的,就是/dev/下面的设备文件,供上层应用程序打开使用的?

 

2、写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?


3、自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?


4、原子操作你怎么理解?为了实现一个互斥,自己定义一个变量作为标记来作为一个资源只有一个使用者行不行?


5、insmod 一个驱动模块,会执行模块中的哪个函数?rmmod呢?这两个函数在设计上要注意哪些?遇到过卸载驱动出现异常没?是什么问题引起的?


6、在驱动调试过程中遇到国oops没?你是怎么处理的?


7、ioctl和unlock_ioctl有什么区别?


8、设备驱动模型三个重要成员是?platfoem总线的匹配规则是?在具体应用上要不要先注册驱动再注册设备?有先后顺序没?


这些应该都是比较基础的问题吧,但是从实际情况上来看,回答的都不是很正确。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。