前言 嵌入式计算机系统简称嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生重要影响。在后PC时代,嵌入式系统的广泛应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、嵌入式人工智能及物联网应用等),这类应用也被称为微控制器领域;另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器(MAP)领域。在ARM产品系列中,ARM CortexM系列与ARM CortexR系列适用于电子系统的智能化类应用,即微控制器领域;ARM CortexA系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即,要完成一个嵌入式系统产品的设计,需要硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模日益增大,业界对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别关注,嵌入式软硬件构件化开发方法逐步被业界所重视。 本书在《嵌入式基础与实践》(第6版)基础上重新撰写,样本芯片使用TI公司于2023年推出的基于ARM CortexM0+内核的MSPM0L1306微控制器。《嵌入式基础与实践》(1~6版)先后获得江苏省高等学校重点教材、普通高等教育“十二五”国家级规划教材、国家级一流本科课程教材等荣誉。本书配有可以直接实践的硬件系统AHLMSPM0L1306,具备简洁、便利、边学边实践等优点,克服了实验箱模式的冗余、不方便带出实验室、不易升级等缺点,为探索嵌入式教学模式提供了一种新的尝试。 书中以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照通用知识—驱动构件使用方法—测试实例—构件制作过程的顺序,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。需要特别说明的是,虽然编写教材与教学必须以某一特定芯片为蓝本,但作为嵌入式技术基础,本书试图阐述嵌入式通用知识要素。因此,本书以知识要素为基本立足点设计芯片底层驱动,使得应用程序与芯片无关,具有通用嵌入式计算机(GEC)性质。书中将大部分驱动的使用方法提前阐述,而驱动构件的设计方法后置,目的是让学生先学会使用构件进行实际编程,后理解构件的设计方法。因构件设计方法部分有一定难度,对于有不同要求的教学场景,也可不要求学生理解全部构件的设计方法,讲解一两个构件即可。嵌入式应用技术——基于TI的MSPM0L1306微控制器本书具有以下特点。 (1) 把握了通用知识与芯片相关知识之间的平衡。书中针对嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计;反过来也可加深对通用知识的理解。 (2) 把握了硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一项软件、硬件协同设计的工程,不能像通用计算机那样,将软件、硬件完全分开来对待。特别对于电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。 (3) 对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则和构件化封装要求编制的底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。 (4) 设计了合理的测试用例。书中所有源程序均经测试通过,在本书的网上教学资源中也保留了测试用例,为读者验证与理解带来方便,也避免了因例程的书写或固有错误给读者带来烦恼。 (5) 网上教学资源提供了所有模块完整的底层驱动构件化封装程序与测试用例。对于需要使用PC的程序的测试用例,还提供了PC的C#源程序、芯片资料、使用文档、硬件说明等,并制作了课件及微课视频。网上教学资源的版本将会适时更新。 本书由王宜怀、黄河、王佳、王进、钱瑛撰写。苏州大学嵌入式人工智能与物联网实验室的研究生参与了程序开发、书稿整理及有关资源建设,他们卓有成效的工作使得本书更加充实。TI公司的王沁女士、谢胜祥先生为本书提供了许多支持,在此一并表示诚挚的感谢。 鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。 苏州大学王宜怀2024年1月