1、北极光苏嵌教育EDUCATION嵌入式技术与应用丛书Linux驱动入门主编魏清副主编梁庚徐志国按照初学者的思路来讲述Linux驱动结合Linux内核源码的分析来进行Linux驱动的开发立足实践,体现苏嵌教育多年的经验电子工业出版社PUBLISHING HOUSE OF ELECTRONICS INDUSTRYhttp:/前言目前,国内图书市场上驱动开发书籍虽多,但大多都脱离了Linux的内核资源,单一地介绍设备驱动。而作为一个合格的驱动工程师,应该能站在全局的角度,充分利用Linux内核中现有的关于总线和子系统的驱动代码,来实现具体设备的驱动。本书从嵌入式底层驱动开发角度出发,结合Linux内
2、核源码分析,将隐藏在嵌入式驱动开发背后的,关于Linux内核中的进程管理、内存管理,以及各类驱动等方面的机制和知识娓娓道来。不仅让读者知其然,更要让读者知其所以然,并让这些知识再反作用于实践,从而帮助读者掌握相应设备的驱动。具体说来,全书主要讨论了包括Linux内核的基础知识、Linux内核中进程、内存、中断管理的实现,各类驱动机制的框架实现,字符设备、块设备、网络设备驱动的实现等多个方面的话题。为了读者真正理解这些理论,本书结合每一个总线和子系统相关的驱动代码,使用友善之臂的Mini2440开发板,对所讲的总线和子系统代码进行了实际应用,使读者能够真正掌握和使用Linux内核中现有的驱动资源
3、。嵌入式驱动学习一直是所有初学者的高门槛,找到一本合适的参考教材往往非常困难。我在苏嵌的学习期间就已经在网络上分享和交流驱动学习经验,正是在CSDN论坛上与无数初学者的沟通和交流,才萌生了给驱动初学者创作本书的念头。在即将走上工作岗位之际,结合自己学成后的项目实践经验,最终成稿。本书的出版也得到了苏嵌教育驱动开发组老师的大力支持,苏嵌教育经过六年的沉淀,嵌入式硬件培训一直在行业内独树一帜,在驱动领域更是总结了很多培训成果,这些成果出于知识产权保护的原因,并未向大众开放。参与本书的作者大多数人都是苏嵌学生和老师中的杰出代表,他们全面总结自身嵌入式驱动学习经验,也第一次面向大众解密了苏嵌驱动开发教
4、学中的许多特色细节。在多年的项目开发过程中,我发现,要想成为一个嵌入式驱动开发工程师,需要“内外兼修”。内功就是熟悉Linux内核源码,对内核中的管理机制一定要很熟悉,并且要有很好的硬件基础。这里的基础不仅是所谓的模电和数电,而且要对CPU及其外围设备的时序及工作原理很精通,这是决定你是否能成为合格的驱动开发工程师的根本因素。而外功就是精通C语言、数据结构,至少5万行代码量,掌握Linux上层调用机制,深入理解Linux操作系统。对于在校的大学生,在校学习的课程相对独立,缺乏系统性,即使学习Linux操作系统,在大学四年都无法接触到Linux内核,只是具备少量的“外功”而已,更不要提毕业之后从
5、事Linux驱动开发了。大学生应如何修炼自己“内外功”呢?我们的建议是先从“外功”开始修炼。在大学低年级时先熟悉C语言、数据结构以及Linux上层的调用机制,熟悉Linux操作系统,日常开发在Linux平台下进行,并尝试的去看Linux内核源码,看不懂没关系,但至少能够对内核中所用到的一些概念及专业名词有所了解,为以后打下基础。大学三四年级就可以专心修炼“内功”了,结合大学所开设的专业课,弥补自己体系知识上的不足。最重要的就是要实践,动手写驱动,借助资料,一步一步地剖析Linux内核源码。这样度过大学四年的话,Linux驱动工程师的梦想就不再是遥不可及了。最后,还要提醒大家在学习的过程中,一定要对自己学习的东西多做总结,写学习和开发心得,这样能加快您前进的步伐。在苏嵌培训过的不少学员都进入了不错的研发企业,普通二本、三本的学生拿到了年薪10万元待遇的人很多。感谢我的父母、老师和朋友一直以来对我的关心和帮助。参与本书编写的还有张成、李赛、闫坤等。本书汇集了作者的学习心得,对于想学习驱动的同学,无疑是一本高效的入门指南,期待更多如此的佳作问世!鉴于时间仓促,作者水平有限,书中难免有错误和不足之处,希望广大读者批评指正。联系E-mail:,并已开通QQ技术讨论群:1780328730。作者2014年1月于金陵IV