图书前言

前言

人与计算机的关系经历了3个阶段,分别为多人共用一台计算机阶段、个人计算机阶段以及普适计算阶段。当前,人类社会正在从第二阶段步入第三阶段,每个人实际都拥有多台计算机,其中绝大部分为嵌入式计算机,例如手机、智能家电和电子玩具等。旺盛的社会需求对嵌入式人才培养提出了更高的要求,需要教育工作者培养出更多具有创新精神的嵌入式设计人才。

本书作者自2005年以来,一直在大连理工大学软件学院讲授“嵌入式系统程序设计”课程,教学内容为介绍基于ARM处理器/嵌入式Linux操作系统的C语言程序设计方法。2009年,本书作者于清华大学出版社出版了《嵌入式系统程序设计》一书,作为课程教材使用,摆脱了没有授课教材的窘境。嵌入式方向作为计算机领域的一个分支,发展速度非常快。在硬件方面,处理器不断更新; 在软件方面,新的技术和设计工具不断涌现。在近几年的教学过程中,作者迫切感觉到教材需要实时更新,以反映当前的主流技术发展方向,因此,从2014年开始撰写本书。

本书撰写基于以下思路。首先,没有任何一个设备能涵盖所有嵌入式系统的典型应用。由于受条件限制,具体设备也容易成为读者的学习障碍,所以本书注重于讲清基本原理,弱化具体设备。其次,为了简化嵌入式系统设计流程,本书介绍了使用嵌入式仿真软件进行系统设计的方法及典型案例,读者只要有一台个人计算机,即可通过编程对嵌入式硬件直接控制。最后,本书用到的所有工具软件和提及的所有技术,都选用了当前最新版本,力争为读者呈现出这些软件与技术的最新状态。

《嵌入式系统程序设计》可视作本书的第一版,与其相比,本书做了大幅更新,主要有以下几个方面。第一,删去了涉及具体设备的原书第7章及2.4节,尽量弱化设备因素,降低读者学习门槛; 第二,增加了对不同型号处理器的介绍,例如LPC2136、S3C2440等处理器,给读者提供更广阔的学习空间; 第三,鉴于嵌入式操作系统在底层起到的重要作用,本书专门用一章来描述各种版本嵌入式Linux系统的构建方法; 第四,对嵌入式Linux编程技术进行了更全面的介绍,专门用一章介绍IPC编程机制; 第五,设备驱动程序是嵌入式系统编程的特色内容,将其单独列为一章介绍; 第六,介绍了基于Proteus的嵌入式系统仿真设计; 第七,本书的附录部分也做了大幅修改和补充。读者可通过网络下载。基于以上变动,本书相比第一版,增加了100余页内容,并对每一节都做了不同程度的更新。

本书大部分内容来自于作者的教学实践,另有部分内容参考了其他相关书籍以及网络上的资料,作者已尽量在参考文献中列出来源。由于本书编写过程漫长,且初期资料整理缺乏条理,因此有部分资料,现已无法找到准确的出处,在此向各位作者致歉,并请相关作者和本人联系以便再版时致谢。

为了保持正文叙述的流畅性,在编写过程中,作者刻意把一些背景和细节内容安排到附录中,供没有基础的读者查询。为简便起见,对于书中涉及的函数,除对函数原形进行说明的部分之外,在叙述时省略了参数; 书中的代码,除用以说明程序结构的框架代码之外,都可以通过编译,能够正常运行,并采用GPL许可证; 所有操作步骤,都有详细解释; 重要步骤有截图供参考; 如果读者采用相同的开发环境,可以顺利完成书中介绍的每一项操作。

本书详细描述了嵌入式软件领域的主要概念、程序设计思想、编程流程和方法以及仿真设计,并对大量相关工具软件做了介绍。本书可以作为大学本科嵌入式方向3年级、4年级学生或研究生的教材使用,也可以作为嵌入式行业工程师的参考手册使用。

本书的编写,历时将近两年,在这个过程中,得到了很多人的帮助,在此向大家致以衷心的感谢!首先感谢清华大学出版社梁颖主任对我工作的长期支持,以及对本书内容和结构设计方面提出的宝贵意见; 感谢任延飞、孟伟、陈超凡等同学在本书撰写过程中做的具体而重要的工作; 感谢大连理工大学的同事们给我工作上和生活上的关心与支持,尤其是教务处领导和同事们的支持; 感谢我的爱人对我的理解及在生活中的照顾; 最后,也是最重要的,感谢我曾经的和将来的学生们,是你们带给了我工作的乐趣和动力!

由于作者经验有限,加之时间仓促,书中不可避免会有很多不足之处,请读者不吝批评指正。所有关于本书的意见,请发送电子邮件到laixiaochen@dlut.edu.cn信箱,希望在和读者交流的过程中能有所裨益。

编者2016年4月于大连