1、前言随着嵌入式及物联网技术地快速发展,ARM处理器已经广泛地应用到了工业控制、智能仪表、汽车电子、医疗电子、军工电子、网络设备、消费类电子、智能终端等领域而较新的ARM Cortex-A9架构的四核处理器更是由于其优越的性能被广泛应用到了中高端的电子产品市场。比如基于ARM Cortex-A9的三星Exynos4412处理器就被应用在了三星GALAXY Note II智能手机上。另外,Liux内核由于其高度的稳定性和可裁剪性等特点,被广泛地应用到了嵌入式系统,Android系统就是一个典型的例子。这样,ARM处理器就和Linux操作系统紧密地联系在了一起。所以,基于ARM和Liux的嵌入式系统
2、就得到了快速的发展。嵌入式系统是一个定制的系统,所以千变万化、形形色色的硬件都必须要有对应的驱动才能使其正常工作,为这些硬件设备编写驱动就是不可避免的了。虽然有很多内核开发人员已经为很多常见的硬件开发了驱动,但是驱动的升级一般都跟不上新硬件的升级。笔者就多次遇到过内核的驱动和同一系列的升级版本芯片不匹配的情况,这时就要改写驱动程序。所以内核层次的底层开发几乎都要和驱动打交道。另外,了解驱动(或者说内核)的一些底层工作原理,也有助于我们写出更稳定、更高效的应用层代码为了能够实现这一目标,并促进嵌入式技术的推广,华清远见研发中心自主研发了套基于Exynos4412处理器的开发板FS4412,并组织
3、编写了本书。本书注重实践、实用,没有用长篇大论来反复强调一些旁枝末节的内容,但是对于会影响理解的部分又非常详细地分析了内核源码,并给出了大量的图示。书中的各个实例虽然为了突出相关的知识重点而简化了对某些问题的讨论,不能称得上工程上严格意义的好驱动,但是确实也具备了对应的设备驱动开发所必需的各方面。实例按照工程上驱动开发的增量式方式来进行,即先有主体再逐渐完善,循序渐进。读者按照实例能够迅速掌握对应驱动的开发精要,对整个驱动的实现也就有了一个清晰的思路。本书共14章,循序渐进地讲解了嵌入式Liux设备驱动开发所涉及的理论基础和大量API说明,并配有大量驱动实例。全书主要分为五部分:第一部分是Liux设备驱动开发的概述,包含第1章:第二部分是模块及字符设备驱动的理论,包含第28章:第三部分是字符设备驱动实例,包含第9章和第10章:第四部分是Liux块设备驱动和网络设备驱动,包含第11章和第12章:最后一部分是Liux内核的调试和开发环境的搭