当前: 首页 - 图书专区 - 嵌入式系统基础教程 第2版
嵌入式系统基础教程 第2版


  教辅下载
  在线购买
俞建新 王健 宋健建 编著
978-7-111-47998-7
49.00
307
2014年12月24日

计算机 > 计算机组织与体系结构 > 嵌入式计算机

2043
简体中文
16

教材
面向CS2013计算机专业规划教材








本书全面介绍了嵌入式系统的基本理论和知识,教学重点是基于ARM处理器的嵌入式硬件平台。本书的主要内容包括:嵌入式系统的基本概念、嵌入式微处理器技术、ARM处理器体系结构、嵌入式调试技术、ARM处理器指令系统、嵌入式开发工具、嵌入式外设控制器、嵌入式存储器和接口技术、嵌入式操作系统等知识。
随着嵌入式系统集成与开发技术的不断发展,嵌入式产品已经逐渐进入人们的工作、生活等各个方面。产业界对嵌入式人才的需求推动了教育界对嵌入式课程的重视和建设,本书自第1版发行至今已有近6年时间,被国内许多高校采用为课程教材。期间嵌入式技术经历了新的飞跃和更替,作者在第2版中加入了新的技术内容并从结构上系统梳理了该领域的知识脉络,以便读者学习。本书作者多年从事嵌入式系统教学,积累了丰富的教学经验,本书也正是基于作者丰富的实践和科研成果编写而成的。

本书特点
由宏观到微观,由浅入深:从嵌入式系统行业概述着手,系统介绍嵌入式系统的基本定义、特点、分类和发展等,给读者清晰的整体印象。
层次清晰,重点突出:在上一版本的基础上更加系统化地梳理了嵌入式系统的理论层次。同时,以目前市场上常见的ARM处理器为核心,兼顾其他体系结构的处理器,对嵌入式系统硬件理论进行全面介绍。
理实并重,内容均衡:本书原理介绍和应用编程语言实例并重,注意理论和实践的结合,帮助读者更好地理解知识。
教辅资源丰富:本书将为用书教师提供PPT、教师手册等丰富的教辅资源。用书教师可登录华章网站下载相关资源。
十几年以来,嵌入式系统技术和嵌入式产品发展势头迅猛,其应用涉及通信产品、消费电子、汽车工业、工业控制、信息家电、国防工业等各个领域。目前,嵌入式产品在IT产业以及电子工业的经济总额中所占的比重越来越大,对国民经济增长的贡献日益显著。随着手机、平板电脑、媒体播放器、上网本、数码相机和机顶盒等电子器材类嵌入式产品的普及,嵌入式系统知识在广大民众中间的传播也越来越广泛。现在,许多IT公司每年都投入可观的资金和科研力量研发嵌入式新产品,产业界每年都需要大量受过良好教育的嵌入式系统开发人才。出于对嵌入式高科技知识的追求,广大在校学生纷纷选修嵌入式系统课程,以提高嵌入式系统的理论知识和开发技能。教育界也纷纷开设各种嵌入式系统课程,积极推动嵌入式系统教学质量和水平的提高。
在整个社会对嵌入式系统研发人才的需求持续增长的背景下,参加本书编写的三位作者均从2002年开始着手准备嵌入式系统的教学工作,并且于2004年在南京大学计算机系和软件学院以及东南大学计算机系正式开设并讲授嵌入式系统课程。截至2014年,作者们在嵌入式系统课程上已经培养了大约2600名修课学生。
2012年春季,基于多年的教学实践和科研成果积累,大家经过讨论决定对2008年出版的《嵌入式系统基础教程》进行修订,并确立了第2版教材的基本编写原则。
1)发挥第1版教材的优点和长处,排除第1版教材的冗余和不足,使新版教材的概念更加清晰、重点更加突出、案例更加简明易读。
2)以硬件为基础,把可能涉及的大多数硬件知识讲深讲透,使读者掌握好底层嵌入式开发的技能,为将来进一步学习嵌入式技术打好基础。
3)在知识传授方面,做到合理衔接、循序渐进,力求使其他课程讲授过的内容不再在本教材中简单地重复出现。
4)对于其他前导课程与嵌入式系统基础课程中相重叠的知识点,通过对比和补足的方式加以讲解。例如,DMA输入输出方式在“计算机组成原理”和“微机原理与接口技术”课程中分别从不同角度做了讲解,为此在嵌入式系统课程中,我们采取对比的方式简明扼要地介绍嵌入式系统中的DMA机制与使用方法,从而消除学生的重复感,使之学深学透。
5)尽可能提高嵌入式理论知识的抽象度。例如,嵌入式处理器有多种体系结构,其中凌动处理器同PC的IA32处理器体系结构相同,但是多数嵌入式处理器的体系结构与IA32处理器的体系结构有所不同。我们将这些嵌入式处理器的共有特点抽象出来,利于读者举一反三,深入理解嵌入式处理器不同于通用处理器的主要方面。
6)着重讲解ARM处理器的体系结构、流水线、指令集、IP核、汇编语言程序设计、常用功能模块等,突出ARM处理器在嵌入式系统中的主导地位。
本书特点
本书阐述的知识点主要是在计算机组成原理和微机原理与接口技术这两门本科生课程之上的延续,突出了嵌入式产业硬件的新发展,涵盖了嵌入式系统技术领域的主要概念和知识点,并在此基础上做了扩展,力求做到层次分明、结构清晰。
本书首先概述了嵌入式系统的定义、分类、硬件结构和软件结构,列举了近20个具体的嵌入式系统,并介绍了它们之间的规模区别和技术特点,使读者对嵌入式系统有一个全局概念。
本书第9章对闪速存储器单元构造的微电子学物理结构做了概括性的介绍,包括闪速存储器的存储单元原理和基本结构,避免读者对底层元器件工作机制认识的不足。
以ARM处理器为嵌入式硬件平台核心,兼顾其他体系结构的嵌入式处理器,全面系统地介绍嵌入式系统的硬件理论知识,包括常用嵌入式处理器、常用嵌入式存储器、常用嵌入式总线、常用嵌入式接口和常用嵌入式外部设备。
嵌入式硬件原理介绍、软硬件接口介绍、电路连接介绍和应用编程介绍并重。除了把每一个重要的概念讲解清楚之外,还力求做到理论与实践相结合,并给出相应的编程范例。这些范例都已调试通过,覆盖了很多典型的嵌入式程序设计范式。
相较上一版,内容有所取舍,重点突出。例如,删除了上一版关于知识产权核、低功耗的原理知识,以及实时操作系统的一般性原理,把内容重点放在ARM嵌入式处理器的硬件平台上。
有一部分内容是选修选讲内容,在标题上用*号标记。使用本教材的教师可以根据课时计划和学生的知识基础对这些内容加以取舍。
使用本教材授课时应该同时开展相应的实验/实践教学。
教学建议
1)本教材主要用于本科生教学,硕士生教学可酌情使用。
2)本科生课时数安排以48学时为宜,即每周安排3学时。按照这个教学计划,整个课程的总授课时间约32学时,另外安排16学时的实验。
教学资源
本书将为授课教师提供相关软件、实例程序、教学课件、习题解答等资源,教师可以从华章网站(www.hzbook.com)下载。
作者分工
本书由俞建新编制提纲,并撰写了第2、3、4、5、6、8、9章,王健撰写了第1章,宋健建撰写了第7章。俞建新负责全书的统调工作。
致谢
南京大学计算机系李宣东主任、陶先平副主任、陈道蓄教授、陈立军教授和王崇骏副教授与作者讨论过本书的写作大纲,给出了建设性观点;南京大学计算机系张福炎教授、张天副教授为本书的编写提供了很好的指导性建议;南京大学计算机系杨献春教授和陆庆文副教授为本书的实验范例编写提供了很好的实验环境。
南京大学计算机系的黄滨、孙睿、吴亚琦、胡琰华、黄蓉、余进、欧建生、冯子陵、阮佳彬、戴平等硕士生参加了本书的部分范例程序的编写和调试工作,南京大学物理系和电子系的马小飞、邢向磊、范爱华、娄孝祥、赵凤英、赵伟明和赵红玉等同学参加了本书的编写、试读和校对工作。
在此一并对上述各位老师和学生的指导、协助与支持表示衷心的感谢。

编者
2014年7月10日于中国南京
前言
第1章 嵌入式系统概论1
 1.1 概述1
  1.1.1 嵌入式系统的定义1
  1.1.2 后PC时代与无所不在的计算时代1
 1.2 嵌入式系统发展简史2
  1.2.1 微处理器的发展2
  1.2.2 嵌入式系统的发展阶段3
 1.3 嵌入式系统的特点4
 1.4 嵌入式系统的基本分类5
 1.5 嵌入式系统举例5
  1.5.1 低端嵌入式系统5
  1.5.2 中端嵌入式系统7
  1.5.3 高端嵌入式系统9
 1.6 嵌入式系统的基本组成11
  1.6.1 嵌入式系统的硬件组成12
  1.6.2 嵌入式系统的软件组成13
 1.7 嵌入式系统的现状与发展趋势14
  1.7.1 嵌入式系统的现状及主要制约因素14
  1.7.2 嵌入式系统的发展方向15
 1.8 嵌入式系统的相关研究领域15
  1.8.1 嵌入式系统的主干学科领域15
  1.8.2 与嵌入式系统密切关联的科学技术领域15
 1.9 本章小结18
 1.10 习题和思考题19
第2章 嵌入式微处理器技术20
 2.1 嵌入式处理器基本分类20
  2.1.1 通用型嵌入式微处理器20
  2.1.2 微控制器22
  2.1.3 嵌入式DSP处理器23
  2.1.4 可编程片上系统23
  2.1.5 嵌入式双核/多核处理器24
  2.1.6 可扩展处理平台26
 2.2 嵌入式微处理器的典型技术27
  2.2.1 I/O端口统一编址与特殊功能寄存器27
  2.2.2 哈佛结构29
  2.2.3 桶型移位器31
  2.2.4 正交指令集32
  2.2.5 双密度指令集33
  2.2.6 看门狗定时器33
  2.2.7 边界对准与端序35
  2.2.8 地址重映射36
  2.2.9 FIFO缓冲寄存器37
  2.2.10 主存控制器38
 2.3 主流嵌入式微处理器39
  2.3.1 MIPS RISC嵌入式微处理器39
  2.3.2 PowerPC系列嵌入式微处理器41
  2.3.3 飞思卡尔公司的系列嵌入式微控制器42
  2.3.4 凌动系列嵌入式微处理器43
  2.3.5 ARM系列嵌入式微处理器45
 2.4 本章小结46
 2.5 习题和思考题46
第3章 ARM处理器体系结构47
 3.1 概述47
  3.1.1 ARM体系结构的版本47
  3.1.2 ARM体系结构版本的变种48
  3.1.3 ARM体系结构版本的命名规则48
  3.1.4 ARM处理器核系列49
 3.2 ARM处理器的结构52
  3.2.1 ARM处理器的RISC特征52
  3.2.2 流水线53
  3.2.3 ARM的工作模式和工作状态57
  3.2.4 ARM寄存器的组织59
 3.3 ARM Cortex处理器62
  3.3.1 ARM Cortex-M3内核62
  3.3.2 采用Cortex-M3核生产的微控制器66
  3.3.3 ARM Cortex-A8内核66
  3.3.4 ARM Cortex-A9内核67
  3.3.5 采用Cortex-A9内核生产的应用处理器69
 3.4 ARM存储器的组织70
  3.4.1 ARM存储器的数据类型和存储格式70
  3.4.2 ARM的存储体系70
  3.4.3 片内存储器的用法71
  3.4.4 协处理器CP1571
  3.4.5 存储管理单元72
  3.4.6 保护单元78
  3.4.7 ARM处理器的Cache80
  3.4.8 快速上下文切换扩展82
  3.4.9 写缓存区83
 3.5 ARM处理器的片上总线规范AMBA84
  3.5.1 AMBA 2.0片上总线的特点84
  3.5.2 AMBA 2.0片上总线的主控单元和从动单元85
  3.5.3 AMBA 2.0总线的时序85
  3.5.4 AMBA 3.0——AXI协议86
 3.6 ARM处理器核的典型范例:ARM7TDMI86
  3.6.1 复位87
  3.6.2 总线周期87
  3.6.3 ARM7TDMI处理器的总线优先级90
 3.7 ARM的异常中断处理90
  3.7.1 ARM的异常中断响应过程90
  3.7.2 从异常中断处理程序返回92
 3.8 本章小结94
 3.9 习题和思考题94
第4章 嵌入式系统调试技术95
 4.1 嵌入式硬件调试结构和调试技术95
  4.1.1 与通用计算机调试结构的比较96
  4.1.2 调试信道96
  4.1.3 ROM仿真器97
  4.1.4 实时在线仿真97
 4.2 指令集模拟器97
  4.2.1 ARMulator98
  4.2.2 SkyEye98
 4.3 片上调试技术99
  4.3.1 背景调试模式99
  4.3.2 边界扫描测试技术和JTAG接口100
  4.3.3 ARM7TDMI核中的JTAG扫描链104
  4.3.4 嵌入式ICE-RT模块105
  4.3.5 JTAG的断点设置原理106
  4.3.6 Nexus调试标准107
 4.4 嵌入追踪宏单元ETM108
 4.5 基于Angel的调试方案109
  4.5.1 Angel调试系统的组成109
  4.5.2 Angel的两种版本109
  4.5.3 Angel的调试处理流程和调试操作步骤110
 4.6 半主机调试方式110
 4.7 本章小结112
 4.8 习题和思考题112
第5章 ARM处理器指令集113
 5.1 ARM处理器的指令系统113
  5.1.1 ARM处理器指令系统的主要特征113
  5.1.2 ARM与x86指令系统的比较114
 5.2 ARM指令集的编码格式和语法114
  5.2.1 ARM指令集的编码格式114
  5.2.2 ARM指令的一般语法格式114
  5.2.3 ARM指令的执行条件114
  5.2.4 第2操作数说明116
 5.3 ARM处理器的寻址方式117
 5.4 ARM指令的分类说明121
  5.4.1 分支指令122
  5.4.2 Load/Store指令123
  5.4.3 数据处理指令127
  5.4.4 乘法指令128
  5.4.5 前导零计数指令129
  5.4.6 程序状态寄存器指令129
  5.4.7 协处理器指令130
  5.4.8 异常中断指令131
  5.4.9 ARM伪指令131
 5.5 本章小结133
 5.6 习题和思考题134
第6章 ARM汇编语言程序设计135
 6.1 概述135
  6.1.1 预定义寄存器名及内部变量名135
  6.1.2 ARM汇编语言程序的语句格式136
  6.1.3 ARM汇编语言程序编写规范139
 6.2 ARM汇编语言指示符139
  6.2.1 AREA140
  6.2.2 ENTRY141
  6.2.3 CODE16、CODE32、THUMB和ARM141
  6.2.4 EQU142
  6.2.5 END142
  6.2.6 ALIGN142
  6.2.7 DCB143
  6.2.8 MAP144
  6.2.9 FIELD144
  6.2.10 SPACE144
  6.2.11 DCD和DCDU145
  6.2.12 GBLA、GBLL及GBLS146
  6.2.13 LCLA、LCLL及LCLS147
  6.2.14 SETA、SETL及SETS147
  6.2.15 其他指示符的简单功能描述147
 6.3 ARM汇编语言指示符的编程举例149
  6.3.1 条件分支指示符149
  6.3.2 ASCII字符串比较149
  6.3.3 宏定义指示符151
 6.4 ARM过程调用标准ATPCS和AAPCS153
  6.4.1 寄存器的使用规则153
  6.4.2 堆栈使用规则153
  6.4.3 参数传递规则154
 6.5 典型ARM汇编语言程序举例154
  6.5.1 入门范例154
  6.5.2 基本结构156
  6.5.3 典型的ARM汇编程序范例159
  6.5.4 5级流水线的互锁问题165
 6.6 ARM内嵌汇编166
  6.6.1 内嵌汇编的指令用法167
  6.6.2 内嵌汇编器与armasm汇编器的区别167
 6.7 C/C++与汇编程序的相互调用168
  6.7.1 C/C++程序调用汇编程序169
  6.7.2 汇编程序调用C程序169
  6.7.3 汇编程序调用C++程序170
  6.7.4 C程序调用C++程序172
 6.8 软中断和半主机方式ARM汇编程序设计173
 6.9 GNU格式的ARM汇编语言程序设计177
  6.9.1 GNU格式ARM汇编语言程序的设计要点177
  6.9.2 GNU格式ARM汇编语言程序举例178
 6.10 本章小结179
 6.11 习题和思考题179
第7章 嵌入式系统开发工具181
 7.1 概述181
  7.1.1 开发ARM嵌入式系统的硬件结构181
  7.1.2 开发工具的基本分类和主要品种181
  7.1.3 集成开发环境183
  7.1.4 CodeWarrior集成开发环境184
 7.2 ARM开发工具概述185
 7.3 ARM映像文件格式186
  7.3.1 ELF文件格式186
  7.3.2 ARM映像文件的组成188
 7.4 ADS的组成与使用196
  7.4.1 命令行开发工具196
  7.4.2 GUI开发工具200
  7.4.3 ADS实用工具202
 7.5 用ADS生成应用程序203
  7.5.1 生成简单应用程序hello203
  7.5.2 生成函数库mathlib206
  7.5.3 生成一个在目标板上运行的定时器程序207
 7.6 RVDS209
  7.6.1 RVDS的组件210
  7.6.2 RVDS使用概览211
  7.6.3 开中断关中断的内嵌ARM汇编函数212
 7.7 GNU交叉工具链214
 7.8 本章小结214
 7.9 习题和思考题214
第8章 嵌入式外设控制器216
 8.1 嵌入式中断控制器216
  8.1.1 嵌入式中断控制器工作原理216
  8.1.2 ARM Cortex-M3嵌套向量中断控制器222
 8.2 向量中断与非向量中断的入口程序编程示例225
 8.3 嵌入式中断应用程序举例228
 8.4 嵌入式DMA控制器232
  8.4.1 S3C44B0X的DMA控制器232
  8.4.2 S3C44B0X的DMAC相关控制寄存器234
  8.4.3 S3C44B0X的DMA应用程序举例235
 8.5 时钟电源管理器、实时时钟和脉宽调制定时器237
  8.5.1 S3C44B0X的时钟电源管理器238
  8.5.2 S3C2410X的实时时钟240
  8.5.3 实时时钟应用程序概要设计案例241
  8.5.4 S3C44B0X的脉宽调制定时器244
 8.6 本章小结245
 8.7 习题和思考题245
第9章 嵌入式存储器和接口技术247
 9.1 嵌入式系统常用的半导体存储器247
  9.1.1 闪速存储器247
  9.1.2 静态存储器和同步动态存储器258
 9.2 常用的嵌入式系统总线265
  9.2.1 I2C总线266
  9.2.2 SPI总线接口268
  9.2.3 CAN总线269
 9.3 常用的嵌入式系统接口271
  9.3.1 UART接口271
  9.3.2 通用输入输出接口277
  9.3.3 以太网接口278
 9.4 嵌入式系统常用的外部设备285
  9.4.1 键盘285
  9.4.2 液晶显示器288
  9.4.3 触摸屏291
 9.5 本章小结297
 9.6 习题和思考题297
参考文献298
嵌入式
读者书评
发表评论



高级搜索
嵌入式操作系统风云录:历史演进与物联网未来
Arduino从入门到精通:创客必学的13个技巧
深入理解Arduino:移植和高级开发


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才