前言
Foreword
随着消费群体对产品要求的日益提高,嵌入式技术在机械器具制造、电子产品制造、通信、信息服务等领域得到了大显身手的机会,应用日益广泛,相应地,企业对嵌入式人才的需求也越来越多。近几年来,很多院校纷纷开设了嵌入式专业或方向。虽然目前市场上的嵌入式开发相关书籍比较多,但很多是针对有一定基础的行业内研发人员而编写的,并不完全符合学校的教学要求。学校教学需要一套充分考虑学生现有知识基础和接受程度、明确各门课程教学目标的、便于学校安排课时的嵌入式专业教材。
针对教材缺乏的问题,我们以多年来在嵌入式工程技术领域内人才培养、项目研发的经验为基础,汇总了近几年积累的数百家企业对嵌入式研发相关岗位的真实需求,调研了数十所开设嵌入式专业的院校的课程设置情况、学生特点和教学用书现状。经过细致的整理和分析,对专业技能和基本知识进行合理划分,我们于2013年编写了这套高等院校嵌入式人才培养规划教材,包括以下4本。
《嵌入式操作系统(Linux篇)(微课版)》
《嵌入式Linux C语言程序设计基础教程(微课版)》
《ARM嵌入式体系结构与接口技术(Cortex-A9版)(微课版)》
《嵌入式应用程序设计综合教程(微课版)》
经过了3年,嵌入式行业发生了巨大变化,产品也得到了升级换代,同时,高等院校嵌入式专业日臻成熟,首批教材有些已无法满足新的需要,所以本次编写对原有教材进行修订。
ARM处理器是一种高性能、低成本、低功耗的嵌入式RISC微处理器。它由英国ARM公司设计, ARM 公司将处理器架构授权给与其合作的半导体厂商,目前世界上几乎所有大的半导体厂商都生产ARM体系结构的芯片,或者在其专用的芯片当中使用ARM相关的技术,其中ARM Cortex系列处理器目前已经占据了几乎所有的嵌入式处理器的中高端产品市场。本书以Cortex-A9处理器为平台,介绍了嵌入式系统开发的各个主要环节。本书侧重实践,辅以代码加以讲解,从分析的角度来学习嵌入式开发的各种技术。本书使用的工具是Eclipse+GNU工具集实现的开源开发环境。
本书将嵌入式软硬件理论讲解和具体的实践结合在一起,全书共13章,各个章节的主要内容说明如下。
第1章为嵌入式ARM技术概论。这一章主要介绍了ARM公司的一些情况和现有ARM体系结构处理器中的主要版本及各自的特点。本章还详细讲解了ARM处理器的应用选型、技术特点以及其编程模型,最后对本书中用到的硬件平台进行了简单的介绍。通过这一章的介绍,读者可以对ARM技术有一个总体的了解;另外读者可通过了解ARM的编程模型中的知识,为以后的程序设计中的各项技术打好基础。
第2章为ARM开发环境搭建。这一章主要介绍了本书中使用的开发环境的搭建和使用方法以及调试工具的使用方法。
第3章为ARM指令。这一章主要介绍了ARM指令的语法格式、执行操作以及常见的应用方法,最后对ARM常见指令的寻址方式进行了简单的介绍。读者能够在短时间内掌握ARM指令的使用方法,积累一些ARM代码设计的基本方法;同时本书能帮助读者理解高级语言编译后最终在CPU上是如何运行的。
第4章为ARM汇编程序设计。这一章主要介绍了汇编语言程序设计的基本方法,其中包括ARM汇编语言中的伪操作、伪指令、汇编语言程序结构以及汇编语言和C语言混合编程的基本格式与方法。通过这些介绍,读者可以掌握ARM汇编语言的设计方法。
第5章为GPIO编程。从这一章开始直到本书最后一章,都是介绍Exynos4412外设模块的操作,且示例代码都是用C语言进行开发。读者可以参照并总结本章的实验内容及实验步骤,为后续其他模块的实验打下基础。这一章首先介绍了GPIO的概念及应用,然后对Exynos4412下的GPIO的控制器的原理做了进一步说明,最后通过实验来演示了GPIO的编程步骤及使用方法。
第6章为ARM异常及中断处理。这一章详细介绍了ARM体系中的异常中断技术,其中包括ARM体系中异常事件的分类、ARM对各类异常的处理及异常返回机制、在应用程序中使用异常中断处理的方法等;后面对 Exynos4412下的中断控制器进行了详细的讲解,最后通过具体的实验讲了 Exynos4412下的中断控制器的使用方法以及ARM内核对中断的处理机制。
第7章为串行通信接口。这一章首先对通信的一些基本术语进行了解释,然后对UART通信格式和标准RS232规范进行了简单的说明,最后讲述了Exynos4412下UART的工作原理与编程方法。
第 8 章为 PWM 定时器。这一章对定时器以及 PWM 的概念及用途进行了简单的概述,后面对Exynos4412下PWM定时器模块的工作原理及编程方法进行了进一步的讲解。
第9章为看门狗定时器。这一章主要介绍了看门狗定时器的概念、原理及应用,以及在Exynos4412下的看门狗定时器模块的工作原理及编程方法。
第10章为RTC定时器。这一章主要介绍了RTC定时器基本作用,以及在Exynos4412下RTC定时器模块的工作原理及编程方法。
第11章为A/D转换器。这一章主要介绍了A/D转换器的基本概念及作用,对A/D转换器中常用的概念及常见A/D转换器的工作原理进行了解释;最后详细介绍了在Exynos4412下A/D转换器的工作原理、使用方法及编程方法。
第12章为I2C接口。这一章主要介绍了I2C总线通信的概念和I2C总线规范,后面详细介绍了在Exynos4412下I2C总线控制器的工作原理、使用方法及编程方法,并通过实际的例程演示了I2C总线在实际开发中的开发步骤及用途。
第13章为SPI接口。这一章主要介绍了SPI总线的概念和与特点,还介绍了SPI总线规范,最后详细介绍了Exynos4412下SPI总线控制器的工作原理、使用方法及编程方法。
在学习本书时,读者要具有一定的数字电路和C语言的基础知识。另外本书所涉及的很多专业名词和术语,都是按照国内单片机领域中的一些通用术语表达的,但仍有一些ARM体系结构中特有的名词较难表达。
本书由刘洪涛、秦山虎、武立鑫合作完成。本书的完成需要感谢华清远见嵌入式学院,教材内容参考了学院与嵌入式企业需求无缝对接的、科学的专业人才培养体系。同时,嵌入式学院从业或执教多年的行业专家团队也对教材的编写工作做出了贡献,季久峰、贾燕枫、关晓强等在书稿的编写过程中认真阅读了所有章节,提供了大量在实际教学中积累的重要素材,对教材结构、内容提出了中肯的建议,并在后期审校工作中提供了很多帮助,在此表示衷心的感谢。
本书所有源代码、PPT 课件、教学素材等辅助教学资料,可到人民邮电出版社教育社区(www.ryjiaoyu.com)免费下载。
由于作者水平所限,书中不妥之处在所难免,恳请读者批评指正。对于本书的批评和建议,可以发到www.embedu.org技术论坛。
编者
2016年11月