新書推薦:
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:NT$
254.0
《
舍不得星星:全2册
》
售價:NT$
356.0
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:NT$
347.0
《
汗青堂丛书144·决战地中海
》
售價:NT$
765.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:NT$
250.0
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:NT$
398.0
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
|
編輯推薦: |
本书是著名教授Raj Kamal 所著的《嵌入式系统 体系结构、编程与设计》的第3 版。本书通过巧克力自动售卖机、数字相机、TCPIP 栈的创建、机器人管弦乐队、汽车巡逻控制、手机中的智能卡和SMS 输入系统等案例研究,引导读者学到更多关于嵌入式硬件体系结构、接口、总线、软件编程设计和实时操作系统的关键概念。读者可通过章末的复习题和实践练习,来锤炼解决问题和使用建模实践进行系统设计的技巧。
|
內容簡介: |
"《嵌入式系统 体系结构、编程与设计第3版》将帮助读者深入理解嵌入式系统软硬件设计的基础知识。本书通俗易懂,穿插大量图形、示例、样例代码和系统设计案例,便于学生查阅和学习。 ◆ 新版用更多篇幅讲述嵌入式系统的设计和开发过程 ◆ 包含学术界和研究人员感兴趣的新技术领域,如片上系统设计、计算系统的高级体系结构、分布式联网嵌入体系结构和车载技术 ◆ 透彻阐述嵌入式硬件的体系结构、设计过程、设计方法、接口技术、总线、协议、硬件中断、软件中断、嵌入式软件编程、程序建模、进程间同步和实时操作系统 ◆ 在示例的引导下全面分析广泛使用的RTOS:COS-II、VxWorks、Windows CE、OSEK和实时Linux ◆ 包含多个案例研究巧克力自动售卖机、数码相机、TCPIP堆栈创建、机器人管弦乐队、自动巡航控制、智能卡、在移动电话中输入SMS,呈现程序建模方法以及系统设计的软件工程实践"
|
關於作者: |
Raj Kamal在17岁获得理科硕士学位,18岁在一本英国杂志上发表了首篇论文,22岁在印度理工学院获得博士学位。Raj拥有46年的教学和研究经验。Raj坚持不懈地学习新兴技术,并主动传播它们,一些同事称他为学习机和人类发电机。Raj迄今为计算机、电子、通信和信息技术专业的学生编写十本教材,已成功指导了15位博士生,在享有国际声誉的期刊和会议上发表约130篇研究论文。
|
目錄:
|
第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.4 IP核 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.1 IC技术 54
2.9.2 VLSI技术 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微控制器、
现实中的接口和IO总线 69
3.1 微控制器和微处理器简介 70
3.2 嵌入式和外部存储器设备 70
3.3 微控制器-8051的体系结构 71
3.3.1 8051微控制器的硬件
体系结构 71
3.3.2 ATMEL 89x51系列微控制器
硬件体系结构 72
3.3.3 ATMEL 90Sxx系列 73
3.3.4 指令集 73
3.3.5 IO端口、电路以及IO编程 76
3.3.6 外部存储器接口电路 77
3.3.7 计数器和定时器 78
3.3.8 串行数据通信输入输出 79
3.3.9 8051中的中断 80
3.4 ATMEL AVR微控制器 80
3.5 ARM微控制器 82
3.6 计算机系统总线 83
3.6.1 CPU微处理器系统总线 83
3.6.2 存储器设备接口 86
3.7 现实的接口 88
3.7.1 现实接口电路中的设备地址 88
3.7.2 IO设备和组件的连接 89
3.7.3 IO:管理数据 90
3.7.4 串行和并行IO 91
3.7.5 设备中断和IO 93
3.8 IO性能 93
3.9 IO总线 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.1 Harvard存储器体系结构 108
4.1.2 Von NeumannPrinceton
存储器体系结构 110
4.1.3 Harvard体系结构的
存储器接口电路 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.5 INTEL x86体系结构8086、
80386、80486和奔腾 119
4.5.1 80386的体系结构 120
4.5.2 80486的体系结构 120
4.5.3 奔腾P580586和P6的
体系结构 120
4.6 ARM 120
4.7 SHARC 122
4.8 存储器类型和地址 124
4.8.1 合并存储器 124
4.8.2 嵌入式存储器 126
4.8.3 ROM变种 126
4.8.4 RAM、SRAM和DRAM 128
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.1 IO的类型和示例 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 串行IO示例 145
5.1.8 并口 146
5.1.9 串并输出和输入 146
5.1.10 并行IO的示例 146
5.2 串行通信设备 147
5.2.1 串行设备的同步、准同步
和异步通信 147
5.2.2 UART模式协议异步
串行通信 148
5.2.3 IBM PC COM端口上的
串行RS232C通信 150
5.2.4 HDLC协议 151
5.2.5 同步串行数据通信的SPI
端口 152
5.2.6 异步UART串行数据
通信的SCI端口 153
5.2.7 同步和异步串行数据
通信的串行接口SI 153
5.2.8 SDIO、SPI 1-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.7 watchdog定时器 162
5.6.8 实时时钟 162
5.7 分布式网络嵌入式
系统结构 163
5.7.1 总线的优点 163
5.7.2 总线的缺点 164
5.8 串行总线通信协议 164
5.8.1 I2C总线 165
5.8.2 CAN总线 166
5.8.3 USB总线 168
5.8.4 FireWire IEEE 1394
总线标准 169
5.8.5 先进的串行高速总线 170
5.9 并行总线设备协议
使用ISA、PCI、PCI-X 和
高级总线的并行通信网络 170
5.9.1 ISA和EISA总线 171
5.9.2 PCI和PCIX总线 171
5.9.3 ARM总线 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.4 Internet协议IP 176
5.10.5 Ethernet以太网 177
5.11 无线和移动系统协议 177
5.11.1 红外数据协会IrDA 177
5.11.2 蓝牙 178
5.11.3 802.11 179
5.11.4 ZigBee 180
本章小结 180
关键词及其定义 181
复习题 185
实践练习题 186
第6章 设备驱动程序和中断
服务机制 189
6.1 不使用中断服务机制的
编程式IO的设备访问
端口 189
6.1.1 Intel IO结构 192
6.1.2 同步 193
6.1.3 传输率 194
6.1.4 延迟 194
6.2 中断驱动的输入输出 195
6.3 ISR的概念 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 直接存储器访问
驱动的IO 212
6.14.1 DMA 212
6.14.2 同一中断源生成多个快速
连续中断时的DMA通道
使用 212
6.14.3 DMA控制器 212
6.15 设备驱动程序编程 214
6.15.1 编写系统中的物理设备
驱动ISR 215
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.2 C程序中的元素:头文件、
源文件以及预处理指令 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.12 C嵌入式编程 251
7.12.1 C的优点 251
7.12.2 C的缺点 252
7.13 嵌入式C程序的代码
优化以消除缺点 253
7.14 用Java进行嵌入式编程 253
7.14.1 Java编程基础 253
7.14.2 使用Java编程的优点 255
7.14.3 Java的缺点 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.3 FSM状态表 272
8.4 多处理器系统的建模 275
8.4.1 多处理器系统 275
8.4.2 图在多处理器系统中的
应用:划分和调度 278
8.5 UML建模 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.1 OS的信号量IPC函数 300
9.9.2 作为事件信号变量或
通报变量的信号量的使用 301
9.9.3 作为资源键的信号量以及
信号量在临界段中的使用 302
9.9.4 使用多个信号量同步任务 304
9.9.5 多个任务等待同一信号量 306
9.9.6 计数信号量 307
9.9.7 P和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.1 OS服务 332
10.1.1 OS服务目标 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.3 IO子系统 342
10.7 RTOS环境中的中断
例程和中断源调用处理 342
10.7.1 通过中断源以及ISR
发送ISR输入消息直接
调用ISR 343
10.7.2 RTOS首先响应中断,
接着OS调用相应的ISR 343
10.7.3 RTOS首先响应中断,调用
对应的ISR,之后ISR把消
息发送给中断服务线程 344
10.7.4 通过ISR接收IPC事件 345
10.8 实时操作系统 345
10.9 使用RTOS进行基本设计 346
10.9.1 RTOS基本设计原则:
15个设计策略 347
10.9.2 节约存储器和功耗 350
10.10 RTOS任务调度模型 353
10.11 操作系统的安全问题 354
10.12 OS标准:POSIX 354
10.12.1 IEEE标准POSIX 1003.1b
的RTOS标准化和进程
间通信函数 355
10.12.2 IEEE标准POSIX 1003.1b
的IO函数 356
10.12.3 IEEE标准POSIX 1003.1b
的文件函数 356
10.13 作为性能指标的中断
延迟和任务响应时间 356
10.13.1 周期、突发以及非周期
任务的调度模型中延迟和
最后期限的性能指标 356
10.13.2 使用CPU负载作为
性能指标 357
10.13.3 突发任务模型作为性能
指标 357
10.14 OS性能准则 358
10.15 中间件:含义和示例 358
10.16 应用层软件:含义和
例子 358
本章小结 359
关键词及其定义 360
复习题 360
实践练习题 361
第11章 实时操作系统编程:
MicroCOS-II和VxWorks 363
11.1 RTOS 364
11.1.1 RTOS中的基本函数 364
11.1.2 当前的实时操作系统 365
11.1.3 RTOS的类型 365
11.1.4 实时系统的基准简介 367
11.2 COS-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.1 pSOS 398
11.3.2 VrTx 398
11.3.3 QNX RTOS 398
11.4 RTOS VxWorks 399
11.4.1 基本特性 400
11.4.2 系统库头文件中的任务
管理库 402
11.4.3 VxWorks系统函数和
系统任务 405
11.4.4 IPC函数 408
本章小结 419
关键词及其定义 421
复习题 422
实践练习题 423
第12章 实时Linux、Windows CE、
OSEK、手持设备和汽车操作
系统 425
12.1 POSIX兼容操作系统 426
12.2 实时Linux 操作系统 426
12.2.1 用于嵌入式系统的Linux
嵌入式Linux 426
12.2.2 RTLinux 431
12.3 Windows CE 435
12.3.1 Windows CE的特点 436
12.3.2 Windows CE编程 438
12.3.3 窗口和窗口管理 439
12.3.4 内存管理 439
12.3.5 文件和注册表 440
12.3.6 Windows CE数据库 441
12.3.7 进程、线程和IPC 442
12.3.8 按键、触摸屏、鼠标的
输入 445
12.3.9 通信和网络 446
12.3.10 设备间套接字通信函数 448
12.3.11 创建窗口 449
12.3.12 Win32 API编程 449
12.3.13 嵌入式系统的Windows 8
和Windows Embedded
Compact 2013 451
12.4 OSEK 451
本章小结 453
关键词及其定义 455
复习题 458
实践练习题 459
第13章 RTOS编程和程序建模设
计示例与案例研究 461
13.1 嵌入式系统设计的案例研究以
及使用MUCOS RTOS对巧克
力自动售卖机ACVM编码 462
13.1.1 需求 462
13.1.2 规范 463
13.1.3 使用UML为规范建模 464
13.1.4 ACVM的硬件体系结构 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将应用层
字节流发送到TCPIP网络
的编码案例研究 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.3 ACC硬件体系结构 496
13.6.4 ACC软件体系结构 497
13.6.5 ACC软件任务、同步模型
和实现 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.4 SMS按键硬件 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.2 Motorola S-record和Intel Hex
二进制映像格式的定位器
输出文件 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.3 MIP、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
|
內容試閱:
|
序言 本书用作计算机科学、信息技术、电子通信工程专业的大学生和研究生的教材、软件培训研究所的学生课本,也可用作嵌入式系统设计人员的入门书籍。本书采用易于理解、对学生友好的方式编写,包括一些示意图、示例、样例代码和系统设计案例。嵌入式系统设计需要硬件和软件人员组成的团队。本书阐释了硬件和软件概念,同时把多学科的大学生和研究生作为主要读者。前两个版本成功满足了电子、计算机科学和工程领域的大学生和研究生的要求,还考虑到了培训嵌入式系统的软硬件人员和设计人员。VLSI和片上系统、汽车和车辆、医用电子和机器人等领域的人士和学术界人士也发现,设计和研究领域的创业者应学习本书。本书前2版在印度和海外热烈反响。大致估计,最近10年,仅印度就有160 000位工程和专业培训的学生,以及软硬件专业人员阅读了本书。本书最初在印度出版,现在出版了中文和韩文版,新加坡和纽约出版了国际学生版和McGraw-Hill USA版。读者应具备的基本学术背景作者假定读者学习过基本课程,具有微处理器、微控制器、计算机体系结构和组织、操作系统、CC编程技巧等方面的学术背景。学习新版本的要求新版本添加了嵌入式系统设计和开发过程的重点内容。这一版考虑了大学生和研究生级别的基本要求,以及近年来电子通信工程、电子工程、设备控制工程、计算机科学和工程、信息技术和计算机应用等领域的嵌入式系统论文提及的变化。特定的改进和新内容新版本在第2版的基础上又增加了几个新主题。比较重要的主题有4个:1嵌入式系统设计和开发过程;28051、AVR和AMR微控制器,实际接口,使用总线输入输出;3介绍高级体系结构和处理器存储组织;4输入输出设备,通信总线和分布式联网嵌入式体系结构。另外,自从上一版以来,作者与一些年轻教师交流,定期收到教师和学生的反馈。新版本的章节也由一些年轻、直率、敬业的工程学院教师审核。希望这一版考虑了大多数有价值的建议和批评。对学者和研究人员有价值的新内容片上系统设计、计算机系统的高级体系结构、分布式联网嵌入式体系结构和车辆技术是嵌入式系统的学者和研究人员感兴趣的新领域。新版本把这些包含进来,作为有价值的新内容。本书的主要特点本书独有的特色是解释了软硬件概念,没有过分强调把微控制器、DSP集成电路或VLSI电路作为嵌入式系统,也没有过分强调编程语言和操作系统。读者会发现如下主题的呈现和描述比较独特:总线判优、IO设备、接口、通信总线、分布式联网嵌入式体系结构、中断、异常和信号、上下文切换、程序模型、进程、线程和任务、进程间同步、实时操作系统功能。书中的案例研究遵循成熟的软件工程实践。教师会发现,为学生制作演示文稿非常有趣,因为在各个章节中使用了一个通用示例巧克力自动售卖机的软硬件构建和设计。读者指南各专业的大学生、研究生、专业培训生的学习路径建议参见附录A。希望本书的新版本比第2版更具备国际性,用作如下读者的教材和入门书籍:1 计算机科学、信息技术、电子通信、仪器和控制工程专业的大学生和研究生。2 软件和嵌入式系统的专业培训课程。3 专业设计人员、片上系统设计、计算系统的高级构建、分布式联网嵌入式体系结构、车辆技术领域的学者和研究人员,对嵌入式系统的新领域感兴趣的学者和研究人员。各类课程的学习路径资深教授和重要设计人员是最好的法官。根据作者的经验,各专业的大学生、研究生和专业培训生可以采用附录A中所示的学习路径。突出特点● 全面解释了嵌入式硬件体系结构、设计工程和方法、接口技术、总线和协议、软硬件中断、嵌入式软件编程、程序建模、进程间同步、实时操作系统。● 用示例详尽说明如何学习广泛使用的RTOS:COS-II、VxWorks、Windows CE、OSEK和实时Linux。● 重点介绍构成嵌入式系统的软硬件设计的基础知识。● 呈现巧克力自动售卖机、数码相机、TCPIP栈的创建、机器人管弦乐队、汽车巡逻控制、手机中的智能卡和SMS输入等系统的案例研究。● 解释了程序的建模,系统设计的软件工程实践。● 每章开头都列出了重要主题,给出了学习目标。● 样例代码。● 书末列出了参考书目、期刊引用和重要的Web链接,为嵌入式系统的参考和进一步学习提供了一个初步的图书馆。● 具备便于教学的一些特性,例如包含大量示例、示例代码和案例研究,用UML模型设计和图形演示软件工程实践,说明如何设计和编写系统,章末包括重要术语表、复习题和实践练习题。● 250幅图片。● 215个示例。● 265道复习题。● 200道实践练习题。章节的组织新版的各章内容如下:第1章该章将详细介绍嵌入式系统的基础内容,包括硬件单元、系统和应用软件的嵌入式ROM映像,还介绍开发嵌入式软件、嵌入式系统设计、体系结构和模型的语言。并对系统和系统开发技能要求进行了大致的分类,同时提供了一些应用。第2章该章介绍SoCSystem on Chip,片上系统中嵌入式系统的设计,以及复杂系统中VLSI电路设计技术、AISC、IP核、微处理器、ASIP、微控制器、DSP和微处理器的使用。该章将讲述设计过程、设计度量、抽象的概念、嵌入式系统设计中的挑战和问题,介绍系统设计技术和形式。最后给出嵌入式软硬件的3个设计示例。第3章该章说明8051体系结构的特性,介绍处理指令、存储器、端口、计数器计时器,串行输入输出IO和中断处理单元,还论述ATMEL AVR和ARM微处理器。该章描述系统存储器和计算系统中的IO总线之间的交互,阐释了总线如何与存储设备、实时设备和组件交互,演示了总线体系结构、总线性能、输入输出性能、多级总线体系结构以及计算机系统中的总线判优方法。该章探讨在分布式设备和控制器的网络中面向网络的总线判优。第4章该章将讨论处理器中的高级结构化单元,改进嵌入式系统中的处理能力。读者将学习指令级别的并行、管线、超标量处理和缓存单元、x86、ARM和SHARC体系结构。该章还会讨论存储设备,解释度量处理器性能的性能指标,列出给定嵌入式系统的处理器和存储器选择方法。第5章该章将描述各种设备并口和串口设备、时钟设备、异步设备以及连接这些设备的重要总线,还将描述分布式网络体系结构和嵌入式系统的网络,这些系统使用了I2C、CAN、USB、高级串行高速总线、ISA、PCI、PCI-X、高级并行高速总线。该章还将描述支持互联网的嵌入式设备及其网络协议,并讨论用于嵌入式设备的移动和无线网络的无线协议。第6章该章会介绍硬件和软件中断的概念,使用中断服务和处理机制从端口和设备中传输数据,对中断服务和处理机制的理解是嵌入式系统设计者应该掌握的基本知识。该章会解释上下文的概念、上下文切换的阶段、中断延迟和最后期限。该章还会说明数据传输的DMA方法,通过示例介绍设备驱动程序。第7章该章将描述用嵌入式CCJava语言进行嵌入式系统编程的编程概念,还会讨论CJava中面向对象的编程概念。第8章该章将阐述事件轮询、顺序、状态机和并行处理编程模型,还将说明数据流和控制数据流图的使用,以及实时编程过程中的程序模型和FSM的使用。该章还将回答一些重要问题:如何对微处理器建模,以及如何调度和同步指令的处理。该章还会使用图片给出UML建模的基础知识。第9章该章将介绍实时编程最重要的内容:进程、任务和线程的概念,以及进程间通信。该章将描述信号量的使用,详细介绍信号、互斥、消息队列、邮箱、管道、虚拟逻辑插槽和远程过程调用等概念。第10章该章将阐述RTOS的概念和核心函数,介绍进程、存储器、设备、文件和IP子系统管理功能。OS控制着中断处理机制,因此执行中断服务例程Interrupt Service Routines,ISR和ISTInterrupt Service Threads,中断服务线程。RTOS同步了ISR、IST以及进程、任务线程。RTOS允许实时的软硬件操作,还提供了异步IO。该章描述了RTOS环境中多个任务的调度。第11章该章介绍了基于UNIX的实时操作系统:PSoS、VRTX、QNX和VxWorks。该章会讨论两个最重要的RTOS工具:COS-II和VxWorks,详细呈现在这些RTOS中使用OS函数的编码示例。第12章该章介绍POSIX兼容系统和基于RTOS的Linux:实时Linux、嵌入式Linux和RT Linux,它把Windows描述为实时操作系统、手持和汽车实时系统、Windows CE和Windows 8 Embedded,还介绍了OSEK汽车应用的操作系统。第13章该章将描述关于RTOS编程的7个案例研究,分别是巧克力自动售卖机系统、数码相机、TCPIP网络系统、主从机器人之间的通信、汽车中的自适应巡航控制系统、智能卡中的访问控制和卡主机通信任务、为移动设备中SMS文本的密钥使用状态机概念的编码示例。第14章该章详细介绍软件工具、源代码工程工具、集成开发环境,还介绍两个开发平台的使用:主机和目标机。该章讨论了嵌入式系统开发中需要由开发团队解决的问题,包括独立的软硬件设计、软硬件协同设计,选择正确的处理器,分配存储器地址、设备和总线,以及OSRTOS的端口问题。第15章该章介绍如何在主机系统中测试系统代码,因为主机系统有应用开发工具、很大的存储器和窗口或强大的GUI。该章解释了主机上的如下模拟:目标处理器或微控制器、外围设备、设备和网络接口。该章介绍了实验室工具、内部电路模拟器和监控器,它们有助于目标系统的硬件开发,也有助于在测试环境下测试和调试目标系统软件。在线学习中心Web是教师和学生最好的学习伴侣。我们需要Web,就像我们每天需要食物和水一样。新版在Web上有许多新增内容,作为本书的补充,网址是http:www.mhhe.comkamalemb3。嵌入式系统设计的读者可以参考所有的Web补充主题。链接如下,且会定期更新:适用于教师:● 复习题和实践练习的答案已更新● 建议的实验室实验● 适用于整章的PowerPoint幻灯片,带有图片和注释,可以进行有效演示适用于学生:● 关于嵌入式系统过程的软件工程实践的章节● 多选题已更新● 书中所有案例研究的附加信息需要获取这些资料的读者可填写书末的麦格劳希尔教育教师服务表,与销售代表联系。致谢非常感谢印度德里技术研究院的老师们1966~1972和Uppsala瑞典大学的老师们1978~1979,1984,他们教会我自学的重要性,以及跟上新兴技术的重要性。我还要感谢FNA的M S Sodha教授在我整个学术生涯里对我的支持和祝福。感谢同事M K Sahu博士他是大学计算机中心主任和A K Ramani博士他未能看到这个新版,以及电子学院、计算机科学和信息技术学院、工程技术研究所的同事们和年轻教师门给予的一贯鼓励和支持。我要感谢下述所有审核人员花时间审稿并给出反馈:Bhargav Chandra kant GordiyaBirla Vishwakarma Mahavidyalaya BVM 工程学院Vallabh Vidyanagar Nagar, GujaratP B ChopdeVishwakarma信息技术研究所Pune, MaharashtraR K BayalRajasthan技术大学 RTUKota, RajasthanR RameshAnna大学工程学院Chennai, Tamil NaduC R N SharmaVignana Bharati技术研究所 VBITHyderabad, Andhra PradeshJ K MendirattaOxford 工程学院Bangalore, Karnataka最后,感谢我的妻子Sushil Mittal和家庭成员Shalin Mittal、Needhi Mittal、Arushi、Atharv、Shruti、Ishita、Dr Atul Kondaskar、Dr Shilpi Kondaskar在编写这个新版时付出的关爱、理解和支持。反馈作者希望学生和教授能喜欢这个新版本,本书将帮助学生解决问题,使用建模实践锻炼其系统设计技能,学习嵌入式硬件体系结构、接口、总线、软件编程设计和RTOS中的更多重要概念。本书尽可能地给出正确信息。然而,错误在所难免。敬请广大读者批评指正。读者们尤其是学生、教师、学者和教授请将对书中的内容、在线PPT、McGraw Hill站点中Web附加材料的反馈意见通过网站http:www.mhhe.comkamalemb3的Query或Contact me链接发送给作者。
出版社的通知Mcgraw Hill Education印度恭候读者的建议和意见,请将建议和问题发到info.india@ mheducation.com请在主题行中提及书名和作者。与盗版相关的问题也可以报告。
|
|