《嵌入式系统原理及应用开发技术 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:桑楠主编;雷航,崔金钟,杨霞等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2008
  • ISBN:7040225107
  • 页数:395 页
图书介绍:本书以当前主流嵌入式系统技术为背景,以嵌入式系统原理为基础,以嵌入式系统开发体系为骨架,较为全面地介绍了嵌入式系统的基本概念、软硬件的基本体系结构、软硬件开发方法、相关开发工具、应用领域、以及当前的一些前沿动态,为读者展示了一个较为完整的嵌入式系统领域概况。本书没有累述计算机组成原理、程序设计语言、编译原理、操作系统、软件工程等技术的基本原理,而是依据嵌入式系统的特征,重点介绍上述技术原理的嵌入式应用特色,突出嵌入式系统软硬件依赖、实时、可靠等特性,从软件体系结构的角度出发,强调实时调度、Bootloader、BSP、嵌入式实时多任务系统设计、交叉开发与仿真开发等关键技术,并特别引入了基于FPGA的嵌入式应用设计、嵌入式GUI、嵌入式实时网络、嵌入式数据库、流媒体、功耗管理等近年来流行的新应用技术。通过本书的学习,不但可以教会读者使用工具开发嵌入式软硬件,而且可以帮助读者从总体角度,选择适当的技术和方法,全面规划和设计嵌入式系统。本书取材新颖、内容详实、技术实用、系统性强,不仅可作为高等学校嵌入式应用技术课程的教材,还可供从事嵌入式产品开发的广大工程技术人员自学与参考。

第1章 嵌入式系统概论 1

1.1 无所不在的嵌入式系统 1

1.1.1 采样控制系统 2

1.1.2 飞行控制系统 3

1.1.3 信息家电 3

1.1.4 实时信号处理系统 4

1.1.5 汽车电子产品 5

1.1.6 普适计算 6

1.1.7 仿真测试 7

1.2 嵌入式系统定义 8

1.2.1 计算机工业的分类 8

1.2.2 嵌入式系统 8

1.2.3 实时系统 9

1.2.4 嵌入式系统的实时性 10

1.3 嵌入式系统的特征 10

1.3.1 技术密集 11

1.3.2 专用紧凑 11

1.3.3 安全可靠 12

1.3.4 多种多样 12

1.3.5 及时响应 12

1.3.6 成本敏感 13

1.3.7 开发困难 13

1.3.8 不可垄断 13

1.3.9 其他 14

1.4 嵌入式系统的发展历程 14

1.5 嵌入式系统的分类 17

1.5.1 按微处理器位数划分 17

1.5.2 按应用类别划分 17

1.5.3 按系统的实时性划分 17

1.5.4 按工业界应用的复杂程度划分 18

1.6 嵌入式系统基本结构 19

1.6.1 嵌入式硬件组成 19

1.6.2 嵌入式软件组成 20

1.7 嵌入式系统的设计要求 21

1.8 嵌入式应用开发 22

1.8.1 嵌入式系统开发过程 22

1.8.2 嵌入式系统设计 23

1.8.3 嵌入式编程 24

1.8.4 嵌入式系统测试 25

1.8.5 嵌入式软件的重用 26

1.8.6 嵌入式软件开发平台 26

小结 27

习题 28

参考文献 28

第2章 ARM嵌入式微处理器 29

2.1 嵌入式微处理器概述 29

2.1.1 嵌入式硬件系统基本架构 29

2.1.2 嵌入式微处理器的体系结构 30

2.1.3 嵌入式微处理器的分类 32

2.2 ARM嵌入式微处理器体系结构 34

2.2.1 ARM920T的基本结构 34

2.2.2 RISC体系结构 35

2.2.3 AMBA总线 35

2.2.4 工作状态 36

2.2.5 微处理器模式 36

2.2.6 寄存器结构 37

2.2.7 存储系统 39

2.2.8 流水线结构 40

2.2.9 中断和异常 41

2.3 ARM指令系统 42

2.3.1 ARM指令集概述 42

2.3.2 ARM指令寻址方式 44

2.3.3 ARM指令集 46

2.3.4 Thumb指令 58

2.4 基于ARM9的S3C2410X微处理器 58

2.4.1 存储控制器 59

2.4.2 NAND Flash控制器 61

2.4.3 时钟和电源管理 61

2.4.4 I/O端口 65

2.4.5 PWM定时器 66

2.4.6 通用异步收发器 69

2.4.7 中断控制器 71

2.4.8 直接存储器存取 75

2.4.9 LCD控制器 76

小结 77

思考题 77

参考文献 78

第3章 基于ARM的嵌入式系统外围硬件设计 79

3.1 嵌入式微处理器系统硬件设计 80

3.1.1 芯片选型原则 80

3.1.2 电源模块设计 81

3.1.3 时钟模块设计 82

3.1.4 复位电路设计 83

3.2 嵌入式存储器系统设计 84

3.2.1 Flash接口电路设计 84

3.2.2 SDRAM接口电路设计 88

3.3 其他接口设计 91

3.3.1 UART串行接口 91

3.3.2 USB接口电路设计 93

3.3.3 JTAG电路以及调试方式 94

小结 96

思考题 96

参考文献 97

第4章 嵌入式软件体系结构 98

4.1 软件体系结构的基本概念 98

4.2 软件体系结构的作用 99

4.2.1 系统设计计划 99

4.2.2 抽象管理框架 99

4.2.3 特点 100

4.3 软件体系结构的发展历程 100

4.4 通用软件体系结构 101

4.4.1 整体结构 101

4.4.2 层次结构 102

4.4.3 客户机/服务器结构 103

4.5 轮询系统 104

4.5.1 程序结构 104

4.5.2 调度 104

4.5.3 典型系统 106

4.6 前后台系统 107

4.6.1 前台系统的应用 107

4.6.2 运行方式 107

4.6.3 系统性能 108

4.6.4 前后台交互 109

4.6.5 典型系统 109

4.7 实时多任务系统 110

4.7.1 相关概念 110

4.7.2 实时多任务系统与RTOS 111

4.7.3 实时多任务系统的体系结构 111

4.7.4 系统性能 111

4.7.5 典型系统 112

4.8 多处理器系统 113

4.8.1 多处理器系统的分类 113

4.8.2 多处理器系统的应用 114

4.8.3 系统拓扑结构 114

4.8.4 系统性能 115

4.8.5 典型系统 115

小结 116

思考题 116

参考文献 117

第5章 嵌入式实时操作系统 118

5.1 什么是嵌入式操作系统 118

5.2 关键术语 119

5.3 RTOS的特点 121

5.3.1 及时性 121

5.3.2 可确定性 121

5.3.3 并发性 122

5.3.4 高可信性 122

5.3.5 安全性 122

5.3.6 可嵌入性 122

5.3.7 可剪裁性 123

5.3.8 可扩展性 123

5.4 RTOS的体系结构 123

5.4.1 整体结构 123

5.4.2 层次结构 124

5.4.3 微内核结构 125

5.4.4 构件化结构 126

5.4.5 其他体系结构 127

5.5 RTOS的分类 128

5.6 实时内核 129

5.6.1 任务管理 129

5.6.2 任务间的通信 138

5.6.3 中断 139

5.6.4 时钟管理 141

5.6.5 内存管理 142

5.7 RTOS扩展组件 143

5.7.1 嵌入式GUI 143

5.7.2 嵌入式网络 147

5.7.3 嵌入式文件系统 154

5.7.4 嵌入式数据库 157

5.7.5 流媒体支持 160

5.7.6 功耗管理 165

5.7.7 用户接口 168

5.8 典型的RTOS 169

5.8.1 VxWorks 170

5.8.2 QNX 171

5.8.3 Windows CE 172

5.8.4 Embedded Linux 173

5.8.5 Symbian OS 174

5.8.6 TinyOS 175

5.8.7 DeltaOS 176

5.9 RTOS发展趋势 177

小结 178

思考题 179

参考文献 180

第6章 板级支持包与系统引导 182

6.1 嵌入式软件运行过程 182

6.2 板级支持包 183

6.2.1 BSP的概念 184

6.2.2 BSP中的驱动程序 184

6.2.3 BSP和BIOS的区别 185

6.2.4 RTOS的BSP 186

6.3 RTOS的引导模式 188

6.3.1 需要Boot Loader的引导模式 188

6.3.2 不需要Boot Loader的引导模式 188

6.3.3 操作系统引导实例 189

6.4 Boot Loader 192

6.4.1 Boot Loader概念 192

6.4.2 Boot Loader的开发 192

小结 200

思考题 200

参考文献 200

第7章 嵌入式软件设计方法 201

7.1 嵌入式软件工程概述 201

7.1.1 嵌入式软件的生命周期 201

7.1.2 并发任务 203

7.1.3 信息隐藏 203

7.2 嵌入式软件的分类 204

7.3 嵌入式软件的特点 205

7.3.1 实时性 205

7.3.2 异步事件的并发处理 205

7.3.3 应用/操作系统一体化 205

7.3.4 应用可固化 206

7.3.5 实用性 206

7.3.6 适用性 206

7.3.7 鲁棒性 206

7.3.8 够用即可 206

7.3.9 安全性 207

7.4 嵌入式软件设计方法 207

7.4.1 嵌入式软件开发过程 207

7.4.2 常规设计方法 214

7.4.3 实时多任务设计方法 222

7.4.4 一些新的设计方法 237

7.5 嵌入式软件设计的一些基本原则 241

7.5.1 尽量简单 241

7.5.2 使用静态表 242

7.5.3 尽量减少动态性 244

7.5.4 恰当的任务数目 245

7.5.5 避免使用复杂算法 245

7.5.6 使用有限状态自动机辅助设计 246

7.5.7 面向对象设计 246

小结 247

思考题 247

参考文献 247

第8章 嵌入式软件编程 248

8.1 概述 248

8.2 嵌入式程序设计语言 249

8.3 汇编语言 250

8.3.1 GAS的基本风格 250

8.3.2 与AT&T的差异 253

8.4 C语言 254

8.4.1 gcc扩展 255

8.4.2 C51扩展 259

8.4.3 浮点运算支持 268

8.5 C语言与汇编语言混合编程 269

8.5.1 在线汇编 269

8.5.2 C语言与汇编语言的混合调用 271

8.6 嵌入式Java 273

8.6.1 Java发展概况 273

8.6.2 Java技术框架 274

8.6.3 嵌入式Java程序设计 276

8.6.4 嵌入式Java的相关问题 278

8.6.5 嵌入式Java的典型应用 279

8.7 编程规范 280

8.7.1 模块划分和文件组织 281

8.7.2 源文件 281

8.7.3 头文件 284

8.7.4 程序书写规范 284

8.7.5 数据类型 285

8.7.6 命名方法 286

8.7.7 表达式和基本语句 287

8.7.8 内存使用 288

小结 289

思考题 289

参考文献 289

第9章 嵌入式软件开发环境 291

9.1 概述 291

9.2 交叉开发技术 292

9.2.1 常用的交叉开发方法 292

9.2.2 交叉开发过程 297

9.2.3 交叉开发环境 299

9.3 仿真开发技术 300

9.3.1 仿真开发的分类 301

9.3.2 仿真开发过程 303

9.3.3 仿真开发环境 304

9.3.4 仿真开发环境的特点 305

9.4 开发环境提供的主要工具 306

9.4.1 项目管理 306

9.4.2 配置剪裁 306

9.4.3 源码编辑 307

9.4.4 目标代码编译生成 307

9.4.5 交叉调试 309

9.4.6 测试工具 313

9.4.7 版本管理工具 315

9.5 GNU的嵌入式开发环境 317

9.5.1 gcc编译器 317

9.5.2 make 321

9.5.3 gdb调试器 325

9.6 Wind River System公司开发的集成开发环境 332

9.7 仿真开发工具ARMulator 335

小结 336

思考题 337

参考文献 337

第10章 嵌入式系统可靠性测试与评估 339

10.1 软件测试与可靠性评估 339

10.1.1 软件测试相关概念 339

10.1.2 软件可靠性评估相关概念 341

10.1.3 软件测试与软件可靠性评估的关系 345

10.2 嵌入式软件测试 345

10.2.1 嵌入式软件的测试阶段 346

10.2.2 嵌入式软件测试工具分类 346

10.2.3 有限状态机测试模型 347

10.2.4 CodeTEST测试工具 348

10.3 软件可靠性测试 351

10.3.1 软件可靠性测试概述 351

10.3.2 软件可靠性测试的过程 352

10.3.3 软件可靠性测试方法 353

10.4 嵌入式软件的可靠性测试与评估 355

10.4.1 嵌入式软件可靠性测试特点 355

10.4.2 嵌入式软件可靠性测试方法 356

10.4.3 嵌入式实时软件可靠性评估 358

10.5 嵌入式系统可靠性评价 360

10.6 嵌入式系统可靠性相关技术的进展 361

小结 362

思考题 362

参考文献 362

第11章 前沿技术简介 364

11.1 SoC技术 364

11.1.1 SoC的产生 364

11.1.2 SoC的定义 365

11.1.3 IP核的概念与分类 366

11.1.4 SoC设计特点 368

11.1.5 SoC设计方法 369

11.1.6 SoC验证方法 374

11.1.7 SoPC技术 379

11.1.8 SoC的挑战和发展趋势 381

11.2 嵌入式高可信计算技术 383

11.2.1 可信的起源与内涵 383

11.2.2 可信性的基本特征属性 384

11.2.3 导致可信性降低的主要因素 385

11.2.4 防危性、可靠性与安全性的概念及三者之间的异同 387

11.2.5 现有的高可信保障技术 389

11.2.6 防危核与防危壳技术 391

小结 393

思考题 393

参考文献 394