随着超大规模集成电路的发展,计算机处理器技术不断提高,计算机芯片的处理能力越来越强,体积越来越小,计算机技术应用到生活的方方面面。与人们日常生活打交道最多的就是嵌入式系统,从目前广泛使用的手机、MP3播放器到家用电器,嵌入式系统的应用无处不在。嵌入式系统的开发占整个计算机系统开发的比重也越来越高。
嵌入式系统开发与传统的PC程序开发不同。嵌入式系统开发涉及软件和硬件的开发,是一个协同工作的统一体。目前,已经有许多的嵌入式系统硬件和操作系统软件,其中应用最广泛的是ARM嵌入式处理器和Linux系统。
目前,市场上嵌入式开发的书籍大多是针对某个特定领域编写的,专业性和针对性较强,不适合初学者学习。基于这个原因笔者编写了本书。本书是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。在第1版的基础上,本书进行了全新改版,升级了编程环境,对第1版书中的一些疏漏进行了修订,也对书中的一些实例和代码进行了重新表述,使得更加易读。相信读者可以在本书的引领下跨入嵌入式开发的大门。
关于“Linux典藏大系”
“Linux典藏大系”是清华大学出版社自2010年1月以来陆续推出的一个图书系列,截止2012年,已经出版了10余个品种。该系列图书涵盖了Linux技术的方方面面,可以满足各个层次和各个领域的读者学习Linux技术的需求。该系列图书自出版以来获得了广大读者的好评,已经成为了Linux图书市场上最耀眼的明星品牌之一。其销量在同类图书中也名列前茅,其中一些图书还获得了“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”。该系列图书在出版过程中也得到了国内Linux领域最知名的技术社区ChinaUnix(简称CU)的大力支持和帮助,读者在CU社区中就图书的内容与活跃在CU社区中的Linux技术爱好者进行广泛交流,取得了良好的学习效果。
关于本书第2版
本书第1版出版后深受读者好评,并被ChinaUnix技术社区推荐。但是随着技术的发展,本书第1版内容已经无法满足读者的学习需求。应广大读者的要求,我们结合嵌入式技术的最新发展推出了本书的第2版。相比第1版,第2版图书在内容上的变化主要体现在以下几个方面:
(1)Linux开发环境由Ubuntu8.04升级到12.04。
(2)更新了Cygwin、ADS、GCC等相关软件。
(3)修订了一些专有名词及术语的不一致问题。
(4)删除了部分已经过时的内容,如Ubuntu的网络配置等。
(5)给完整的实例代码增加了行序号,方便读者阅读。
(6)纠正了部分函数讲解错误,并修正了部分代码的类型转化等问题。
(7)将一些表达不准确的地方表述得更加准确。
本书特色
1.循序渐进,由浅入深
为了让初学者快速进入嵌入式系统开发领域,本书一开始对嵌入式系统的软件和硬件做了全面的介绍,让读者对嵌入式系统有一个基本的认识。同时,在书中讲解的知识点都配备了完整的实例,读者可以通过实例学习嵌入式系统开发的相关知识。
2.技术全面,内容充实
作者本人从事嵌入式系统开发多年,深入了解嵌入式系统开发的各个方面,在书中讲解了嵌入式Linux开发的各个要点,包括Linux内核的构成、工作流程、驱动程序开发、文件系统、程序库等知识,使读者全面了解嵌入式Linux开发的各个知识点。
3.实例讲解,理解深刻
嵌入式Linux开发书籍众多,很多书籍偏重理论。本书所有的实例都经过作者验证,并且有详细的操作过程和实验结果。其次,本书的操作实例有完整的实验环境描述,读者可以通过实例加深对知识点的理解。
4.化整为零,深入剖析
嵌入式系统开发涉及知识面广,技术复杂。本书剥茧抽丝,力求找出开发过程中关键的知识点。从关键点入手,通过简单易懂的例子剖析技术原理,帮助读者掌握复杂的技术。
5.详解典型项目案例开发,提高实战水平
本书详细分析了DM9000网卡驱动、NANDFlash设备驱动和USB驱动的实现。通过这三个项目案例,可以提高读者的设备驱动开发水平,从而具备独立进行驱动开发的能力。
6.提供多媒体教学视频和源文件
本书专门提供了9小时多媒体教学视频和实例源文件,便于读者高效、直观地学习。这些学习资料需要读者按照封面的提示自行下载。
本书内容体系
第1篇Linux嵌入式开发基础篇(第1~6章)
本篇主要内容包括嵌入式系统入门、嵌入式软硬件系统、ARM处理器、嵌入式Linux、软件开发环境建立和第一个Linux应用程序。通过本篇的学习,读者可以掌握Linux嵌入式开发环境的搭建和Linux嵌入式的基础知识。
第2篇Linux嵌入式开发应用篇(第7~12章)
本篇主要内容包括Linux应用程序编程基础、开发多进程/线程程序、网络通信应用、串行口通信编程、嵌入式GUI程序开发和软件项目管理等内容。通过本篇的学习,读者可以掌握Linux嵌入式的核心技术与应用。
第3篇Linux系统篇(第13~21章)
本篇主要内容包括ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux启动流程、Linux文件系统、建立交叉编译工具链、命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术。通过本篇的学习,读者可以对Linux系统从内核到文件系统再到启动流程有一个非常清楚的了解。
第4篇Linux嵌入式驱动开发篇(第22~25章)
本篇主要内容包括Linux设备驱动、网络设备驱动程序、Flash设备驱动,以及USB驱动开发等。通过本篇的学习,读者可以掌握Linux嵌入式开发的基本流程及思想。
本书读者对象
*Linux嵌入式开发初学者;
*需要系统学习Linux嵌入式开发的人员;
*Linux嵌入式从业人员;
*Linux嵌入式开发爱好者;
*大中专院校的学生;
*社会培训班的学员。