1、platform 设备驱动的编写
http://blog.csdn.net/gotosola/article/details/7459899
http://www.360doc.com/content/12/0610/16/9400799_217253386.shtml
2、kmalloc和vmalloc的区别
kmalloc对应于kfree,可以分配连续的物理内存;
vmalloc对应于vfree,分配连续的虚拟内存,但是物理上不一定连续。
vmalloc分配内存的时候逻辑地址是连续的,但物理地址一般是不连续的,适用于那种一下需要分配大量内存的情况,如insert模块的时候。这种分配方式性能不入kmalloc。
kmalloc分配内存是基于slab,因此slab的一些特性包括着色,对齐等都具备,性能较好。物理地址和逻辑地址都是连续的
最主要的区别是分配大小的问题:
比如你需要28个字节,那一定用KMALLOC,如果用VMALLOC,分配不多次机器就罢工了。
1、linux驱动分类
2、信号量与自旋锁
2、信号量与自旋锁
semephore spinlock
3、platform总线设备及总线设备如何编写
4、kmalloc和vmalloc的区别
5、module_init的级别
6、添加驱动
7、IIC原理,总线框架,设备编写方法,i2c_msg
8、kernel panic
9、USB总线,USB传输种类,urb等
10、android boot 流程
11、android init解析init.rc
一些面试题:
http://blog.csdn.net/linux_devices_driver/article/details/6589004
http://www.cnblogs.com/tao560532/archive/2011/12/02/2272833.html