随着计算机处理器技术的不断发展,嵌入式系统的应用越来越广泛,目前已经普遍应用于人们生活的方方面面,如手机、平板计算机和家用电器等领域。嵌入式系统开发占据计算机系统开发的比例越来越高。
嵌入式系统开发与传统的PC程序开发不同,前者涉及软硬件开发,是一个协同工作的统一体。目前,市场上已经有许多嵌入式系统硬件和操作系统软件,其中应用最广泛的是ARM嵌入式处理器和Linux系统,而这方面的书籍大多是针对某个特定领域编写的,专业性和针对性都较强,不适合初学者学习。基于这个原因,笔者编写了本书。
本书是获得大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第3版。截至本书完稿,本书第1、2版累计17次印刷,印数超过4万册。本书在第2版的基础上进行了全新改版,不但更新了开发环境,而且对第2版中的一些疏漏进行了修订,并对书中的一些实例和代码进行了修订,使其更加易读。相信读者可以在本书的引领下跨入嵌入式开发的大门。
关于“Linux典藏大系”
“Linux典藏大系”是专门为Linux技术爱好者推出的系列图书,涵盖Linux技术的方方面面,可以满足不同层次和各个领域的读者学习Linux的需求。该系列图书自2010年1月陆续出版,上市后深受广大读者的好评。2014年1月,创作者对该系列图书进行了全面改版并增加了新品种。新版图书一上市就大受欢迎,各分册长期位居Linux图书销售排行榜前列。截至2023年10月底,该系列图书累计印数超过30万册。可以说,“Linux典藏大系”是图书市场上的明星品牌,该系列中的一些图书多次被评为清华大学出版社“年度畅销书”,还曾获得“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”,另有部分图书的中文繁体字版在中国台湾出版发行。该系列图书的出版得到了国内Linux知名技术社区ChinaUnix(简称CU)的大力支持和帮助,读者与CU社区中的Linux技术爱好者进行了广泛的交流,取得了良好的学习效果。另外,该系列图书还被国内上百所高校和培训机构选为教材,得到了广大师生的一致好评。
关于第3版
随着技术的发展,本书第2版与当前ARM嵌入式Linux系统开发环境和涉及的开发工具等有所脱节,这给读者的学习带来了不便。应广大读者的要求,笔者结合当前?ARM嵌入式Linux系统开发技术的发展,对第2版图书进行了全面的升级改版,推出第3版。相比第2版图书,第3版在内容上的变化主要体现在以下几个方面:
* 将Linux系统更改为Ubuntu 22.04;
* 对Linux内核的介绍增加5.x系列;
* 对IT业界的动态进行更新;
* 对GCC软件包和Bugzilla等工具进行更新;
* 修订第2版中的一些疏漏,并重新表述一些不准确的内容;
* 新增对模拟器Qemu的介绍;
* 新增对版本控制系统Git的介绍;
* 新增对文档维护工具的介绍;
* 对一些函数及其形式进行修改;
* 新增思维导图和课后习题,以方便读者梳理和巩固所学知识。
本书特色
1.视频教学,高效、直观
本书特意提供707分钟多媒体教学视频,以高效、直观的方式讲解重要的知识点和操作,从而帮助读者取得更好的学习效果。
2.内容全面、新颖
本书涵盖ARM嵌入式Linux系统开发的大部分重要知识点,包括Linux内核的构成、工作流程、驱动程序开发、文件系统和程序库等,而且基于当前流行的开发环境和工具的稳定版本进行讲解,便于读者对ARM嵌入式Linux系统开发的最新知识有较为全面的了解。
3.讲解由浅入深,循序渐进
ARM嵌入式Linux系统开发涉及的知识面广,技术复杂。为了让初学者快速入门,本书一开始先对嵌入式系统的软硬件进行全面介绍,然后从关键点入手,理论知识结合典型实例,抽丝剥茧地剖析技术原理,从而让读者对嵌入式开发有深入的理解。
4.实例丰富,实用性强
本书结合?53?个完整的实例讲解重要的知识点。这些实例都有完整的实验环境描述,并提供详细的实现步骤,而且经过笔者一一验证,给出了实验结果,有较强的实用性,可以带领读者上手实践,从而加深对知识的理解。
5.案例典型,提高实战水平
本书详细分析串口应用、字符设备驱动、DM9000网卡驱动、NAND Flash设备驱动和USB驱动5个典型案例的实现,让读者了解实际的ARM嵌入式Linux系统开发流程,提高开发水平,尤其独立开发驱动程序的水平。
6.提供习题、程序源代码、思维导图和教学PPT
本书特意在每章后提供多道习题,用以帮助读者巩固和自测该章的重要知识点,另外还提供程序源代码、思维导图和教学PPT等配套资源,以方便读者学习和老师教学。
本书内容
第1篇 基础知识
本篇涵盖第1~6章,主要包括嵌入式系统入门、嵌入式软硬件系统、ARM处理器、嵌入式Linux、软件开发环境搭建、第一个Linux应用程序。通过学习本篇内容,读者可以掌握ARM嵌入式Linux系统开发的基础知识和开发环境的搭建等。
第2篇 应用开发
本篇涵盖第7~12章,主要包括Linux应用程序开发基础、多进程和多线程开发、网络通信应用、串口通信编程、嵌入式GUI程序开发、软件项目管理。通过学习本篇内容,读者可以掌握ARM嵌入式Linux系统开发的核心技术与应用。
第3篇 系统分析
本篇涵盖第13~21章,主要包括ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux的启动流程、Linux文件系统、交叉编译工具、强大的命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术。通过学习本篇内容,读者可以对Linux系统从内核到文件系统再到启动流程等有更深入的理解。
第4篇 项目实战
本篇涵盖第22~25章,主要包括Linux设备驱动开发基础知识、网络设备驱动程序开发、Flash设备驱动开发、USB驱动开发。通过学习本篇内容,读者可以全面掌握ARM嵌入式Linux系统开发的基本流程与思想。
读者对象
* ARM嵌入式Linux系统开发初学者;
* 需要系统学习ARM嵌入式Linux系统开发的人员;
* ARM嵌入式Linux系统开发从业人员;
* ARM嵌入式Linux系统开发爱好者;
* 大中专院校的学生;
* 社会培训班的学员。
配书资源获取方式
本书涉及的配套资源如下:
* 高清教学视频;
* 程序源代码;
* 高清思维导图;
* 习题参考答案;
* 教学课件(PPT);
* 书中涉及的工具。
上述配套资源有3种获取方式:关注本书微信公众号(见书),然后回复数字“29”自动获取下载链接;在清华大学出版社网站上搜索到本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”按钮进行下载;在本书技术论坛上的Linux模块进行下载。
技术支持
虽然笔者对书中所述内容都尽量予以核实,并多次进行文字校对,但因时间所限,可能还存在疏漏和不足之处,恳请读者批评与指正。
读者在阅读本书时若有疑问,可以通过以下方式获得帮助:
* 加入本书QQ交流群(见书)进行提问;
* 在本书技术论坛上留言,会有专人负责答疑;
* 发送电子邮件获得帮助。
弓雷