发布时间:2013-01-13 15:24:17
此文为两年前为好友刘庆敏的书《嵌入式Linux开发详解--基于AT91RM9200和Linux 2.6》中帮忙写的章节的重新整理。如有雷同,纯属必然。经作者同意,将我写的部分重新整理后放入blog中。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 自己移植编译过内核的朋友都知道:生成的zImage内核的位置在arch/arm/boot目录下。但是这个映像是怎么产生的?下面简要地分析一下。&......【阅读全文】
发布时间:2013-01-04 20:48:45
最近在研究Linux下的摄像头驱动的整体构架和编程,必然涉及到V4L2。V4L2是内核针对视频设备所抽象出的一个专门的子系统,对于这个子系统,在大多数驱动书籍中都没有提及。幸好有http://lwn.net/网站上的经典系列文章《Video4Linux2》的介绍,才使得编写V4L2 驱动才有了一个指导性的文档。 对于V4L2的驱动编程,同样可以参考其用户空间的文档:Video for Linux Two API Specification 我整理的《Video for Linux Two(V4L2)——驱动编写指南......【阅读全文】
发布时间:2013-01-04 20:20:05
在Linux内核中的IO模型基本分为4类:1、同步阻塞I/O2、同步非阻塞I/O3、异步阻塞I/O4、异步非阻塞I/O同步:应用显式地通过函数访问数据,在此函数返回时就会得到结果(成功或失败)。异步:应用会显示地通过函数提出访问或关注申请。数据到达时,硬件和驱动会通知应用,此时代码一般不在读写访问函数中,而是得到通知了再去有目的的访问数据。阻塞:在等待数据的过程中会休眠在此处,而非阻塞即函数不休眠立即返回,可执行接下来的代码。对于这4种机制,在《深入Linux设备驱动程序内核机制》中有讲解,对于异步非阻塞I/O其实内核提供了两种实现一个是aio,另一个就是fasync。aio应该算是一个比较新......【阅读全文】