《嵌入式系统体系结构、编程与设计(第3版)》的原作者是Raj Kamal,由郭俊凤翻译,清华大学出版社出版。
基本介绍
- 书名:嵌入式系统体系结构、编程与设计(第3版)
- 作者:[印] Raj Kamal
- 译者:郭俊凤
- ISBN:9787302468806
- 定价:98元
- 出版社:清华大学出版社
- 出版时间:2017-05-01
简介
作者:[印] Raj Kamal 着 郭俊凤 译
定价:98元
印次:1-1
ISBN:9787302468806
出版日期:2017.05.01
印刷日期:2017.04.28
定价:98元
印次:1-1
ISBN:9787302468806
出版日期:2017.05.01
印刷日期:2017.04.28
内容
《嵌入式系统 体系结构、编程与设计(第3版)》将帮助读者深入理解嵌入式系统软硬体设计的基础知识。本书通俗易懂,穿插大量图形、示例、样例代码和系统设计案例,便于学生查阅和学习。 ◆ 新版用更多篇幅讲述嵌入式系统的设计和开发过程 ◆ 包含学术界和研究人员感兴趣的新技术领域,如片上系统设计、计算系统的高级体系结构、分散式联网嵌入体系结构和车载技术 ◆ 透彻阐述嵌入式硬体的体系结构、设计过程、设计方法、接口技术、汇流排、协定、硬体中断、软体中断、嵌入式软体编程、程式建模、进程间同步和实时作业系统 ◆ 在示例的引导下全面分析广泛使用的RTOS:μCOS-II、VxWorks、Windows CE、OSEK和实时Linux ◆ 包含多个案例研究(朱古力自动售卖机、数位相机、TCP/IP堆叠创建、机器人管弦乐队、自动巡航控制、智慧卡、在行动电话中输入SMS),呈现程式建模方法以及系统设计的软体工程实践"
目录
第1章 嵌入式系统简介 1
1.1 嵌入式系统 2
1.1.1 系统 2
1.1.2 嵌入式系统 2
1.1.3 嵌入式系统和通用计算系统 3
1.2 嵌入系统中的处理器 5
1.2.1 微处理器 5
1.2.2 微控制器 6
1.2.3 ARM 8
1.2.4 RISC 8
1.2.5 CISC 9
1.2.6 SoC 9
1.2.7 数位讯号处理器(DSP) 9
1.2.8 专用处理器 9
1.3 系统中的嵌入式硬体
单元和设备 11
1.3.1 构建块 11
1.3.2 嵌入板 16
1.4 嵌入式系统中的软体和
程式语言概述 16
1.4.1 嵌入式软体ROM映像 16
1.4.2 用机器码编写软体 17
1.4.3 用特定于处理器的彙编
语言编写软体 18
1.4.4 用高级语言编写软体 18
1.5 嵌入式系统的设计过程 20
1.6 嵌入式系统的体系结构 21
1.7 嵌入式系统的模型 22
1.8 嵌入式系统的分类 24
1.9 嵌入式系统设计者需要
具备的技能 25
1.10 示例嵌入式系统 26
本章小结 28
关键字及其定义 28
複习题 32
实践练习题 33
第2章 嵌入式系统的设计和开发过程 35
2.1 嵌入式片上系统(SoC)和
VLSI电路设计技术 36
2.1.1 SoC 36
2.1.2 VLSI电路设计技术 38
2.1.3 SoC或VLSI设计中
使用的ASIC 38
2.1.4IP核38
2.1.5多个处理器39
2.2複杂系统设计和处理器39
2.2.1複杂系统和微处理器39
2.2.2使用嵌入式处理器构建
複杂系统43
2.3嵌入式系统的构建过程44
2.4嵌入式系统的设计过程44
2.4.1设计过程中使用的概念44
2.4.2软体设计过程45
2.4.3设计指标46
2.4.4设计过程中的抽象步骤47
2.5嵌入式系统设计中的挑战48
2.6嵌入式系统设计中的挑战:
最佳化设计指标49
2.7嵌入式软体开发的
挑战和问题51
2.8嵌入式系统中软硬体的
协同设计52
2.8.1软硬体的权衡54
2.8.2嵌入式系统中软硬体协同设
计的挑战:最佳化设计指标54
2.9嵌入式系统的设计技术54
2.9.1IC技术54
2.9.2VLSI技术56
2.10系统设计的形式化56
2.11设计过程和设计案例57
2.11.1朱古力自动售卖机(ACVM)57
2.11.2智慧卡59
2.11.3数位相机62
本章小结64
关键字及其定义65
複习题66
实践练习题67
第3章8051、AVR和ARM微控制器、
现实中的接口和I/O汇流排69
3.1微控制器和微处理器简介70
3.2嵌入式和外部存储器设备70
3.3微控制器-8051的体系结构71
3.3.18051微控制器的硬体
体系结构71
3.3.2ATMEL89x51系列微控制器
硬体体系结构72
3.3.3ATMEL90Sxx系列73
3.3.4指令集73
3.3.5IO连线埠、电路以及IO编程76
3.3.6外部存储器接口电路77
3.3.7计数器和定时器78
3.3.8串列数据通信输入/输出79
3.3.98051中的中断80
3.4ATMELAVR微控制器80
3.5ARM微控制器82
3.6计算机系统汇流排83
3.6.1CPU/微处理器系统汇流排83
3.6.2存储器设备接口86
3.7现实的接口88
3.7.1现实接口电路中的设备地址88
3.7.2I/O设备和组件的连线89
3.7.3I/O:管理数据90
3.7.4串列和并行I/O91
3.7.5设备中断和IO93
3.8I/O性能93
3.9I/O汇流排94
3.9.1汇流排仲裁95
3.9.2菊花链方式96
3.9.3独立汇流排请求方式96
3.9.4汇流排轮询方式97
3.10面向网路的汇流排仲裁97
3.11汇流排98
3.11.1体系结构:单层、双层和
多层98
3.11.2仲裁:集中式和分散式98
3.11.3定时99
3.11.4汇流排性能100
3.12多级汇流排100
本章小结101
关键字及其定义102
複习题105
实践练习题105
第4章高级体系结构和处理器-
存储器的组织107
4.1处理器和存储器组织108
4.1.1Harvard存储器体系结构108
4.1.2VonNeumann(Princeton)
存储器体系结构110
4.1.3Harvard体系结构的
存储器接口电路110
4.1.4通用存储器接口电路110
4.2高级处理器体系结构介绍111
4.2.1处理器中的结构单元112
4.2.2高级处理器体系结构113
4.3处理器的组织115
4.3.1处理器组织方式:处理器的
CISC设计115
4.3.2处理器组织方式:处理器的
RISC设计116
4.4指令级并行性117
4.5INTELx86体系结构(8086、
80386、80486和奔腾)119
4.5.180386的体系结构120
4.5.280486的体系结构120
4.5.3奔腾P5(80586)和P6的
体系结构120
4.6ARM120
4.7SHARC122
4.8存储器类型和地址124
4.8.1合併存储器124
4.8.2嵌入式存储器126
4.8.3ROM变种126
4.8.4RAM、SRAM和DRAM128
4.8.5快闪记忆体129
4.8.6快闪记忆体卡130
4.9存储器地址130
4.9.1将记忆体分配给程式段和块130
4.9.2存储器映射130
4.10存储器层次结构和快取131
4.11性能指标132
4.11.1处理器的性能133
4.11.2存储器的性能133
4.11.3嵌入式系统的性能133
4.12处理器和存储器设备的
选择134
4.12.1处理器的选择134
4.12.2处理器或微控制器版本的
选择134
4.12.3微控制器版本的选择135
本章小结135
关键字及其定义136
複习题138
实践练习题139
第5章IO设备、通信汇流排和分散式
联网的嵌入式体系结构141
5.1I/O的类型和示例142
5.1.1同步串列输入143
5.1.2同步串列输出144
5.1.3同步串列输入/输出144
5.1.4异步串列输入144
5.1.5异步串列输出145
5.1.6半双工与全双工145
5.1.7串列I/O示例145
5.1.8并口146
5.1.9串并输出和输入146
5.1.10并行IO的示例146
5.2串列通信设备147
5.2.1串列设备的同步、準同步
和异步通信147
5.2.2UART模式(协定)异步
串列通信148
5.2.3IBMPCCOM连线埠上的
串列RS232C通信150
5.2.4HDLC协定151
5.2.5同步串列数据通信的SPI
连线埠152
5.2.6异步UART串列数据
通信的SCI连线埠153
5.2.7同步和异步串列数据
通信的串列接口(SI)153
5.2.8SDIO、SPI1-SD和4-SD
数据通信154
5.3并行设备连线埠155
5.3.1与开关和小键盘连线的
并行连线埠156
5.3.2与编码器连线的并行连线埠157
5.3.3与步进电机连线的
并行连线埠158
5.3.4与LCD控制器连线的
并行连线埠158
5.3.5与触控萤幕连线的并行连线埠159
5.4设备连线埠的複杂接口特性159
5.5无线设备160
5.6定时器和计数设备160
5.6.1定时设备161
5.6.2计数设备161
5.6.3带计数设备的定时器161
5.6.4两个实例之间的时间间隔161
5.6.5预设时间的输出动作161
5.6.6软体定时器162
5.6.7watchdog定时器162
5.6.8实时时钟162
5.7分散式网路嵌入式
系统结构163
5.7.1汇流排的优点163
5.7.2汇流排的缺点164
5.8串列汇流排通信协定164
5.8.1I2C汇流排165
5.8.2CAN汇流排166
5.8.3USB汇流排168
5.8.4FireWire——IEEE1394
汇流排标準169
5.8.5先进的串列高速汇流排170
5.9并行汇流排设备协定——
使用ISA、PCI、PCI-X和
高级汇流排的并行通信网路170
5.9.1ISA和EISA汇流排171
5.9.2PCI和PCI/X汇流排171
5.9.3ARM汇流排173
5.9.4高级并行高速汇流排174
5.10支持Internet的系统——
网路协定174
5.10.1超文本传输协定(HTTP)175
5.10.2传输控制协定(TCP)176
5.10.3用户数据报协定(UDP)176
5.10.4Internet协定(IP)176
5.10.5Ethernet(乙太网)177
5.11无线和移动系统协定177
5.11.1红外数据协会(IrDA)177
5.11.2蓝牙178
5.11.3802.11179
5.11.4ZigBee180
本章小结180
关键字及其定义181
複习题185
实践练习题186
第6章设备驱动程式和中断
服务机制189
6.1不使用中断服务机制的
编程式I/O的设备访问
连线埠189
6.1.1IntelI/O结构192
6.1.2同步193
6.1.3传输率194
6.1.4延迟194
6.2中断驱动的输入输出195
6.3ISR的概念196
6.4中断源197
6.5硬体中断198
6.6软体中断199
6.6.1异常和异常处理程式200
6.6.2信号和信号处理程式201
6.7中断服务机制202
6.7.1阻止中断的溢出202
6.7.2禁用中断203
6.7.3不可禁止的中断和可
禁止的中断203
6.7.4中断状态暂存器或中
断挂起暂存器204
6.7.5中断向量204
6.8多中断206
6.8.1多中断调用206
6.8.2硬体分配的优先权206
6.8.3软体重写硬体优先权,以
满足服务的最后期限207
6.8.4启用和禁用中断,重写硬体
优先权,以满足服务的最后
期限207
6.9中断服务执行绪作为二级
中断处理程式207
6.10上下文和上下文切换周期208
6.11中断延迟210
6.12中断服务的最终期限211
6.13从上下文保存的角度对处理
器中断服务机制的分类211
6.14直接存储器访问
驱动的I/O212
6.14.1DMA212
6.14.2同一中断源生成多个快速
连续中断时的DMA通道
使用212
6.14.3DMA控制器212
6.15设备驱动程式编程214
6.15.1编写系统中的物理设备
驱动ISR215
6.15.2作业系统中的设备驱动
程式组件215
6.15.3用系统软体函式模拟
物理设备215
6.15.4作为设备驱动和网路
函式的Linux内幕216
本章小结217
关键字及其定义218
複习题220
实践练习题221
第7章编程概念及C、C++和
Java的嵌入式编程223
7.1用彙编语言(ALP)和高级
语言C进行软体编程224
7.1.1彙编语言编程224
7.1.2高级语言编程224
7.2C程式中的元素:头档案、
源档案以及预处理指令225
7.2.1用于包含档案的include
指令226
7.2.2源档案227
7.2.3配置档案227
7.2.4预处理指令227
7.3程式元素:宏与函式227
7.4程式元素:数据类型、数据
结构、修饰符、语句、循环
和指针229
7.4.1数据类型229
7.4.2修饰符的使用230
7.4.3指针和NULL指针230
7.4.4使用数据结构:堆叠、伫列、
数组、鍊表、树、管道、表
格和哈希表230
7.4.5堆叠232
7.4.6多个堆叠232
7.4.7数组233
7.4.8伫列233
7.4.9鍊表234
7.4.10循环伫列234
7.4.11优先伫列235
7.4.12管道235
7.4.13表和哈希表236
7.5循环、无限循环以及条件
语句237
7.6函式调用242
7.7按照循环顺序进行的
多函式调用242
7.8函式指针和函式伫列244
7.9发生中断时函式的排列和
中断服务例程伫列245
7.10嵌入式C和C++:其他
功能246
7.10.1编译器和最佳化247
7.10.2编程和彙编248
7.10.3暂存器的使用约定248
7.10.4定址选项和指令序列的
典型用法249
7.10.5过程调用和返回250
7.10.6参数的传递250
7.10.7检索参数250
7.10.8按值传递的临时变数251
7.11面向对象编程251
7.12C++嵌入式编程251
7.12.1C++的优点251
7.12.2C++的缺点252
7.13嵌入式C++程式的代码
最佳化以消除缺点253
7.14用Java进行嵌入式编程253
7.14.1Java编程基础253
7.14.2使用Java编程的优点255
7.14.3Java的缺点255
本章小结255
关键字及其定义256
複习题259
实践练习题259
第8章程式建模的概念261
8.1程式模型262
8.2基于数据流图的程式模型265
8.2.1数据流图266
8.2.2控制数据流图模型267
8.2.3同步数据流图(SDFG)模型269
8.3用于事件控制程式的
状态机编程模型270
8.3.1状态机编程模型270
8.3.2有限状态机(FSM)模型271
8.3.3FSM状态表272
8.4多处理器系统的建模275
8.4.1多处理器系统275
8.4.2图在多处理器系统中的
套用:划分和调度278
8.5UML建模279
本章小结283
关键字及其定义284
複习题285
实践练习题285
第9章实时作业系统I:进程间通信与
进程、任务和执行绪的同步287
9.1应用程式中的多个进程288
9.1.1进程288
9.1.2进程控制块(PCB)289
9.1.3进程上下文289
9.2应用程式中的多执行绪290
9.2.1进程的多个执行绪290
9.2.2多执行绪的编程290
9.2.3抢占式和非抢占式291
9.3任务291
9.4任务和执行绪状态292
9.4.1调度执行绪和执行绪状态292
9.4.2挂起的执行绪293
9.4.3上下文切换293
9.5任务和数据294
9.5.1上下文294
9.5.2上下文切换295
9.5.3任务控制块295
9.5.4无限事件等待循环的
任务编码295
9.6通过函式、ISR、IST和
任务的特徵进行区分296
9.7进程间通信和同步297
9.8信号函式298
9.9信号量的概念300
9.9.1OS的信号量IPC函式300
9.9.2作为事件信号变数或
通报变数的信号量的使用301
9.9.3作为资源键的信号量以及
信号量在临界段中的使用302
9.9.4使用多个信号量同步任务304
9.9.5多个任务等待同一信号量306
9.9.6计数信号量307
9.9.7P和V信号量307
9.10禁用和启用函式312
9.10.1禁用和启用中断312
9.10.2锁定和解锁函式312
9.11共享数据问题313
9.11.1多任务和多中断服务
例程的数据共享问题313
9.11.2共享数据问题的解决
方法314
9.11.3优先权反转问题和
优先权继承315
9.11.4死锁情况316
9.12伫列和信箱316
9.12.1伫列316
9.12.2信箱318
9.13管道和套接字321
9.13.1管道321
9.13.2套接字323
9.14远程过程调用(RPC)函式326
本章小结326
关键字及其定义327
複习题328
实践练习题329
第10章实时作业系统II:OS和
RTOS的基本功能331
10.1OS服务332
10.1.1OS服务目标332
10.1.2用户和管态结构332
10.1.3结构333
10.1.4核心333
10.2进程管理334
10.3定时器函式334
10.4事件函式336
10.5存储器管理336
10.6设备、档案及IO子
系统管理337
10.6.1设备管理337
10.6.2档案系统的组织和实现339
10.6.3I/O子系统342
10.7RTOS环境中的中断
例程和中断源调用处理342
10.7.1通过中断源以及ISR
传送ISR输入讯息直接
调用ISR343
10.7.2RTOS首先回响中断,
接着OS调用相应的ISR343
10.7.3RTOS首先回响中断,调用
对应的ISR,之后ISR把消
息传送给中断服务执行绪344
10.7.4通过ISR接收IPC事件345
10.8实时作业系统345
10.9使用RTOS进行基本设计346
10.9.1RTOS基本设计原则:
15个设计策略347
10.9.2节约存储器和功耗350
10.10RTOS任务调度模型353
10.11作业系统的安全问题354
10.12OS标準:POSIX354
10.12.1IEEE标準POSIX1003.1b
的RTOS标準化和进程
间通信函式355
10.12.2IEEE标準POSIX1003.1b
的IO函式356
10.12.3IEEE标準POSIX1003.1b
的档案函式356
10.13作为性能指标的中断
延迟和任务回响时间356
10.13.1周期、突发以及非周期
任务的调度模型中延迟和
最后期限的性能指标356
10.13.2使用CPU负载作为
性能指标357
10.13.3突发任务模型作为性能
指标357
10.14OS性能準则358
10.15中间件:含义和示例358
10.16套用层软体:含义和
例子358
本章小结359
关键字及其定义360
複习题360
实践练习题361
第11章实时作业系统编程:
MicroC/OS-II和VxWorks363
11.1RTOS364
11.1.1RTOS中的基本函式364
11.1.2当前的实时作业系统365
11.1.3RTOS的类型365
11.1.4实时系统的基準简介367
11.2μC/OS-II(MUCOS)367
11.2.1系统级函式369
11.2.2任务服务函式374
11.2.3与存储器分配相关的
函式381
11.2.4信号量相关函式384
11.2.5信箱相关函式388
11.2.6伫列相关函式393
11.3基于UNIX的实时操作
系统398
11.3.1pSOS398
11.3.2VrTx398
11.3.3QNXRTOS398
11.4RTOSVxWorks399
11.4.1基本特性400
11.4.2系统库头档案中的任务
管理库402
11.4.3VxWorks系统函式和
系统任务405
11.4.4IPC函式408
本章小结419
关键字及其定义421
複习题422
实践练习题423
第12章实时Linux、WindowsCE、
OSEK、手持设备和汽车操作
系统425
12.1POSIX兼容作业系统426
12.2实时Linux作业系统426
12.2.1用于嵌入式系统的Linux——
嵌入式Linux426
12.2.2RTLinux431
12.3WindowsCE435
12.3.1WindowsCE的特点436
12.3.2WindowsCE编程438
12.3.3视窗和视窗管理439
12.3.4记忆体管理439
12.3.5档案和注册表440
12.3.6WindowsCE资料库441
12.3.7进程、执行绪和IPC442
12.3.8按键、触控萤幕、滑鼠的
输入445
12.3.9通信和网路446
12.3.10设备间套接字通信函式448
12.3.11创建视窗449
12.3.12Win32API编程449
12.3.13嵌入式系统的Windows8
和WindowsEmbedded
Compact2013451
12.4OSEK451
本章小结453
关键字及其定义455
複习题458
实践练习题459
第13章RTOS编程和程式建模设
计示例与案例研究461
13.1嵌入式系统设计的案例研究以
及使用MUCOSRTOS对巧克
力自动售卖机(ACVM)编码462
13.1.1需求462
13.1.2规範463
13.1.3使用UML为规範建模464
13.1.4ACVM的硬体体系结构467
13.1.5软体体系结构468
13.2数位相机的案例研究470
13.2.1需求470
13.2.2类图473
13.2.3数位相机的硬体体系
结构474
13.2.4数位相机的软体体系
结构475
13.3给IP包套用通信网路
路由器477
13.3.1使用VxWorks将套用层
位元组流传送到TCP/IP网路
的编码案例研究477
13.3.2需求477
13.3.3类图、类和对象478
13.4管弦乐队机器人之间通信的
案例研究483
13.4.1需求485
13.4.2类和类图486
13.4.3状态图488
13.4.4机器人管弦乐队MIDI通信
的硬体和软体体系结构488
13.5汽车中的嵌入式系统489
13.6汽车中自适应巡航控制(ACC)
系统的嵌入式系统案例研究490
13.6.1需求491
13.6.2类图495
13.6.3ACC硬体体系结构496
13.6.4ACC软体体系结构497
13.6.5ACC软体任务、同步模型
和实现497
13.7汽车中嵌入式编程的一般语
言特徵、MISRA-C的特徵497
13.8智慧卡中的嵌入式系统
案例研究498
13.8.1需求498
13.8.2类图499
13.8.3硬体和软体体系结构500
13.8.4同步模型501
13.9行动电话键输入软体
案例研究502
13.9.1需求503
13.9.2类和类图507
13.9.3状态图509
13.9.4SMS按键硬体509
本章小结510
关键字及其定义512
複习题515
实践练习题516
第14章嵌入式软体开发过程和工具519
14.1嵌入式软体开发过程和
工具概述519
14.1.1开发过程和软硬体519
14.1.2软体工具520
14.1.3原始码工程管理工具521
14.1.4集成开发环境(IDE)522
14.2宿主机和目标机523
14.2.1宿主系统523
14.2.2目标系统525
14.3连结和定位软体526
14.3.1档案、定址和地址解决
方法的区别527
14.3.2MotorolaS-record和IntelHex
二进制映像格式的定位器
输出档案528
14.3.3用于定位器编码的存储器
映射528
14.4将嵌入式软体植入目标系统530
14.4.1设备PROM或者快闪记忆体
编程器530
14.4.2设备编程器的编程方式531
14.5硬体/软体设计和协同
设计中的问题531
14.5.1选择合适的平台532
14.5.2存储器敏感和处理器敏感
软体535
14.5.3存储器、程式段和设备
地址分配535
14.5.4嵌入式平台中OS的移植
问题538
14.6程式级别的性能分析和
性能建模539
14.6.1程式级别的性能分析和
系统性能指标539
14.6.2多处理器系统性能539
14.6.3MIP、MFLOP和DMIPS
作为性能指标539
14.7性能和性能加速器540
本章小结540
关键字及其定义541
複习题543
实践练习题543
第15章测试、模拟和调试技术与
工具545
15.1集成和测试嵌入式硬体545
15.1.1测试嵌入式系统546
15.1.2可测试性的设计547
15.1.3断言宏547
15.1.4自测的设计547
15.1.5在宿主机上进行测试548
15.2测试方法548
15.2.1错误跟蹤548
15.2.2单元测试549
15.2.3回归测试549
15.2.4选择测试用例549
15.2.5功能测试550
15.2.6覆盖测试550
15.2.7测试嵌入式软体550
15.2.8性能测试551
15.2.9维护551
15.3调试技术551
15.3.1模拟器551
15.3.2模拟器的特性552
15.3.3模拟器的局限性552
15.3.4模拟工具软体553
15.3.5嵌入式系统的原型开发、
测试和调试工具553
15.4试验工具和目标硬体的调试554
15.4.1简单的伏特-欧姆表554
15.4.2简单的LED测试和逻辑
探测器555
15.4.3示波器555
15.4.4位率测量仪556
15.4.5逻辑分析仪556
15.4.6电路内置仿真器(ICE)557
15.4.7监视器559
本章小结560
关键字及其定义560
複习题561
实践练习题561
附录A大学生、研究生、专业
培训学生的不同课程的学习
路线图563
附录B参考文献565