前言
嵌入式计算机系统简称嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生重要影响。在后PC时代,嵌入式系统的广阔应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、传感网应用等),这类应用也被称为微控制器MCU领域;另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器MAP领域。在ARM产品系列中,ARM Cortex-M系列与ARM Cortex-R系列适用于电子系统的智能化类应用,即微控制器领域;ARM Cortex-A系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即要完成一个嵌入式系统产品的设计,需要有硬件、软件及行业领域的相关知识。但是,随着嵌入式系统中软件规模日益增大,对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别的关注,嵌入式软硬件构件化开发方法逐步被业界所重视。
本书前期版本曾获苏州大学精品教材、江苏省高等学校重点教材、普通高等教育“十一五”“十二五”国家级规划教材等。本版是在2017年出版的第4版基础上重新撰写,样本芯片改为德州仪器的MSP432系列微控制器(ARM Cortex-M4F内核)。书中以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件的设计方法”的思路,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。需要特别说明的是,虽然书籍撰写与教学必须以某一特定芯片为蓝本,但作为嵌入式技术基础,我们试图阐述嵌入式通用知识要素。因此,本书以知识要素为基本立足点设计芯片底层驱动,使得应用程序与芯片无关,具有通用嵌入式计算机性质。书中将大部分驱动的使用方法提前阐述,而将驱动构件的设计方法后置,目的是先学会实际编程,后理解构件的设计方法。因构件设计方法部分有一定难度,对于不同要求的教学场景,也可不要求学生理解全部构件的设计方法,讲解一两个即可。
本书具有以下特点。
(1)把握通用知识与芯片相关知识之间的平衡。书中对于嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计,同时反过来,加深对通用知识的理解。
(2)把握硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一个软件、硬件协同设计的工程,不能像通用计算机那样,软件、硬件完全分开来看。特别是对电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能编写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件与软件知识之间的关系。
(3)对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则并按照构件化封装要求编制的底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。
(4)设计合理的测试用例。书中所有源程序均经测试通过,并将测试用例保留在本书的网上教学资源中,避免了因例程的书写或固有错误给读者带来的烦恼。这些测试用例也为读者验证与理解带来方便。
(5)网上教学资源提供了所有模块完整的底层驱动构件化封装程序与测试用例。需要使用PC程序的测试用例,还提供了PC的C#源程序。网上教学资源中还提供了阅读资料、开发环境的简明使用方法、写入器驱动与使用方法、部分工具软件、有关硬件原理图等。网上教学资源的版本将会适时更新。
(6)提供硬件核心板、写入调试器,方便读者进行实践与应用。同时提供了核心板与苏州大学嵌入式系统及物联网实验室设计的扩展板对接,以满足教学实验需要。
本书所对应课程已经成为国家精品在线课程,在中国大学MOOC官网上线。
本书由王宜怀负责编制提纲和统稿工作,并撰写第1~6章、第14章;许粲昊撰写第7~10章;曹国平撰写第11~13章。研究生张艺琳、张蓉、周欣、程宏玉、黄志贤协助了书稿的整理及程序调试工作,他们卓有成效的工作,使本书更加实用。TI公司潘亚涛先生、王沁女士十分重视苏州大学嵌入式系统与物联网实验室的建设,为本书的撰写提供了硬件及软件资料,并提出了许多宝贵意见。
鉴于作者水平有限,书中难免存在不足之处,恳望读者提出宝贵意见和建议,以便再版时改进。
苏州大学 王宜怀
2019年1月
特别说明:此电子书暂不提供二维码资源,敬请谅解。