前言
一、 为什么要写本书
在科技高速发展的今天,各种技术的发展都是日新月异的。短短十多年的时间,芯片从单核发展到双核,再到多核,我国嵌入式操作系统也从无到有(华为鸿蒙操作系统用户数量已超2亿)。如今我国的智能制造、人工智能、数字强国在神州大地落地生根、开花结果,随之而来对专业技术人员的需求也呈爆发式增长,嵌入式系统行业也在其列。智慧城市、智慧工厂、自动驾驶、智慧医疗等热门的领域都离不开嵌入式系统,可以说我们工作与生活的方方面面都与嵌入式系统息息相关。
虽然编者从事嵌入式系统设计开发已经有很多年了,在CSDN等技术博客上撰写了很多文章,但想写好一本嵌入式系统开发相关的技术书籍,在编者看来依然是一个庞大的工程,其难度并不亚于设计一款好的嵌入式系统。如今,嵌入式系统行业已经走到风口浪尖上,很多同行、博友都建议编者全面介绍嵌入式系统开发的内容,而现在,读者手中捧着的这本书,就是这部系统介绍嵌入式系统应用开发的书籍。真诚地希望读者可以用心去阅读这本书,因为每多掌握一份知识,就会多一份喜悦。
二、 内容特色
本书具有可读性和实用性,许多实例都经过精心的考虑,既能帮助理解知识,又具有启发性。书中还特别增加了基于Linux 5.8.1的设备树知识,以及Qt 5.12的嵌入式应用程序开发。

1. 循序渐进,由浅入深
涵盖了ARM嵌入式Linux应用开发的全过程,从如何入手嵌入式系统开发到上层应用程序开发的方方面面。
2. 完整系统,即学即用
首先介绍ARM裸机开发(含软硬件知识),随后对嵌入式操作系统开发方法进行介绍,最后介绍基于Qt平台的嵌入式应用软件开发知识。
3. 例程丰富,注释翔实
本书许多章节后面都有实验,书中给出了丰富的实验代码,代码后面附有详细的分析注释,这些代码都在开发板上进行了验证。

4. 配套资源,超值服务
 工程文件(约1.2GB)、电子教案、教学大纲、教学课件(PPT)等资料,可以扫描下方二维码下载,也可以到清华大学出版社网站本书页面下载。

 超值补充资源: 除书稿内容外,嵌入式编程基础知识、NAND Flash控制器、LCD控制器、ADC和触摸屏接口、I2C总线接口、Linux驱动程序移植、设备树与内核异常处理机制等内容以电子资源(PDF)提供,详见配套资源补充资料。
 微课视频(43集,共450分钟),请扫描本书各章节中对应位置的二维码观看。
 关注编者的微信公众号(见配套资源),可以获得更多嵌入式系统开发等学习资源,亦可与编者互动交流。


配套资源


三、 内容结构
全书分四篇,共15章。
第一篇(第1~3章)着重介绍嵌入式Linux系统开发前的准备。第1章介绍嵌入式系统基础知识; 第2~3章介绍嵌入式开发环境使用,常用开发工具的使用,嵌入式开发交叉工具链的使用,Linux操作系统的基本使用方法与设置,常用Shell脚本的使用,目标板烧写脚本制作等内容。
第二篇(第4~9章)着重介绍硬件部件的使用与编程。第4章主要介绍ARM平台相关的知识,为后续部件编程打下基础; 第5~9章讲述GPIO、UART编程,中断体系结构原理与编程控制,系统时钟与定时器的使用,DDR2存储器及NAND Flash控制器的使用,LCD控制器与触摸屏的原理与操控方法,ADC转换、I2C总线控制器使用等。
第三篇(第10~13章)为嵌入式操作系统的构建。第10~12章着重介绍基于ARMv7处理器的Bootloader系统引导程序(UBoot)的源码分析、移植方法等,嵌入式Linux系统的源码分析、工作原理与系统移植的方法,根文件系统的原理、源码结构与系统构建等; 第13章介绍Linux下设备驱动的开发与移植,以及基于Linux 5.8.1介绍设备树相关内容。
第四篇(第14~15章)为嵌入式系统用户交互系统的开发。第14章主要罗列了Linux下常见的应用程序开发,基于Qt 5.12的环境搭建、配置、源码移植等; 第15章介绍了Qt应用程序开发、Qt Quick、QML与C++混合编程、项目演练等内容。
四、 致谢
本书由李建祥和瞿苏共同编写,李建祥负责全书统稿。在此,要特别感谢瞿苏老师的鼎力相助,使整本书的知识体系更加完整。另外,仇善梁、丁传伟两位领导对本书写作提供了大力支持,在此表示感谢。本书从写作到出版曾得到张爱明、秦柯、陈浩的指导,他们对本书做了内容建议、勘误检查、代码纠错的工作,并对我个人给予了大力支持,在此一并表示感谢。
限于编者的水平和经验,加之时间比较仓促,书中疏漏或者错误之处在所难免,敬请读者批评指正,联系邮箱见配套资源。
李建祥
2022年6月