Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79600
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-03 22:41
文章分类
文章存档

2017年(8)

2014年(13)

我的朋友

分类: LINUX

2014-07-23 22:24:16

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


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

 

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


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


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


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


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


7、ioctl和unlock_ioctl有什么区别?


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


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

阅读(1852) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~