《嵌入式软件开发技术》重点讨论复杂嵌入式软件的分析设计问题。首先《嵌入式软件开发技术》从嵌入式系统的总体构架出发,阐述嵌入式软件、硬件之间的紧密关系,以及嵌入式软件开发的流程和关键技术;其次,针对当前主流的Linux和WindowsCE嵌入式平台,在介绍这些平台的总体结构、软件开发过程的基础上,通过实例介绍相关引导程序定制、内核裁剪、驱动和应用程序的开发技术;此外,从系统的角度出发,介绍面向对象的嵌入式软件分析设计技术,并按照软件开发的过程详细介绍嵌入式软件需求分析、系统设计、详细设计及相关测试技术。
更多科学出版社服务,请扫码获取。
《嵌入式软件开发技术》可作为与嵌入式软件开发相关的硕士研究生与高年级本科生的教材。同时,《嵌入式软件开发技术》还可作为有志于从事嵌入式软件开发、维护的专业技术人员的参考书。
目录
前言
第1章 嵌入式软件开发导论 1
1.1 概述 1
1.1.1 定义 1
1.1.2 发展历史 2
1.1.3 应用领域 3
1.1.4 特点 5
1.2 嵌入式系统的组成 6
1.2.1 嵌入式处理器 6
1.2.2 嵌入式外围设备 7
1.2.3 嵌入式操作系统 8
1.2.4 嵌入式应用软件 8
1.3 嵌入式软件的开发流程 9
1.3.1 需求分析阶段 10
1.3.2 设计阶段 11
1.3.3 生成代码阶段 13
1.3.4 固化阶段 16
1.3.5 嵌入式软件开发的特点 16
1.4 嵌入式系统开发的硬件资源 18
1.4.1 在线仿真器 18
1.4.2 逻辑分析仪 19
1.4.3 ROM 仿真器 19
1.4.4 源程序模拟器 20
1.4.5 示波器 20
1.5 嵌入式系统开发的软件资源 20
1.5.1 语言编译工具 20
1.5.2 交叉调试器 21
1.5.3 实时多任务操作系统 21
1.5.4 集成开发环境 21
1.5.5 板级支持包 22
1.6 嵌入式软件的可移植性和可重用性 23
1.7 小结 25
参考文献 25
第2章 嵌入式操作系统 26
2.1 嵌入式操作系统基础 26
2.1.1 概念 26
2.1.2 设计原则 27
2.1.3 发展和趋势 29
2.2 嵌入式操作系统的体系结构 30
2.2.1 单模块结构 31
2.2.2 层次结构 31
2.2.3 微内核结构 32
2.2.4 层次与微内核相结合的结构 33
2.3 嵌入式操作系统的分类 34
2.4 常见嵌入式实时操作系统 35
2.4.1 VxWorkS 35
2.4.2 pSOS 36
2.4.3 QNX 37
2.4.4 Delta OS 37
2.4.5 μC/OS II 38
2.5 嵌入式Linux 操作系统 39
2.5.1 系统特点 39
2.5.2 引导程序 40
2.5.3 Linux 内核 42
2.5.4 文件系统 45
2.6 Windows CE 47
2.6.1 简介 47
2.6.2 体系结构 49
2.7 小结 52
参考文献 52
第3章 UML 建模技术 53
3.1 面向对象基础 53
3.1.1 基本概念 53
3.1.2 特征 55
3.1.3 要素 56
3.2 UML 语义 57
3.2.1 元模型理论 57
3.2.2 UML 的组织结构 58
3.2.3 UML 建模概念 59
3.2.4 UML 的构造事物 61
3.2.5 UML 中的关系 62
3.3 UML 图形表示 63
3.3.1 UML 静态结构图 64
3.3.2 use case 图 68
3.3.3 UML 交互图 69
3.3.4 UML 状态图 71
3.3.5 UML 活动图 73
3.3.6 UML 实现图 74
3.4 基于UML 的软件建模 75
3.4.1 UML 建模过程 75
3.4.2 UML 建模过程的特点 76
3.4.3 UML 建模实例 79
3.5 小结 84
参考文献 85
第4章 面向对象的嵌入式软件开发过程 86
4.1 面向对象开发过程中的基本概念 86
4.1.1 模式 86
4.1.2 复用 86
4.1.3 构架 87
4.1.4 框架 87
4.1.5 模型 87
4.2 面向对象软件开发原则 88
4.2.1 迭代式开发 88
4.2.2 模型驱动 89
4.2.3 MDA 的开发模式 89
4.3 用例驱动、以框架为核心的迭代增量开发过程 92
4.3.1 用例驱动 92
4.3.2 以框架为核心 95
4.3.3 迭代和增量式过程 96
4.4 统一软件开发过程 97
4.4.1 先启阶段 98
4.4.2 精化阶段 98
4.4.3 构建阶段 99
4.4.4 产品化阶段 99
4.4.5 迭代开发与控制管理 99
4.5 嵌入式系统快速面向对象开发过程 100
4.5.1 ROPES 中的主要活动 101
4.5.2 ROPES 过程中的阶段工件 103
4.5.3 嵌入式软件框架 107
4.6 小结 109
参考文献 109
第5章 面向对象的嵌入式软件需求分析 110
5.1 基本概念 110
5.1.1 需求分析目标和内容 110
5.1.2 用例模型 112
5.1.3 用例的补充描述 115
5.2 需求分析 119
5.3 结构分析 121
5.3.1 领域分析与问题陈述 122
5.3.2 发现对象 122
5.3.3 标识关联 125
5.3.4 标识对象属性 126
5.3.5 建立系统的类模型 127
5.4 行为分析 132
5.4.1 对象行为 132
5.4.2 状态行为 132
5.4.3 建立状态模型 136
5.4.4 建立交互模型 138
5.4.5 增加类的主要操作 140
5.5 小结 140
参考文献 141
第6章 面向对象的嵌入式系统软件设计 142
6.1 软件构架设计 142
6.1.1 系统分解 142
6.1.2 软件体系结构 144
6.1.3 并发性 149
6.1.4 选择持续数据管理基础设施 150
6.1.5 选择完整性控制策略 150
6.1.6 选择全局控制流机制 151
6.1.7 边界条件处理 151
6.1.8 人机界面设计 152
6.2 嵌入式系统机制设计 153
6.2.1 设计模式 153
6.2.2 Adapter 设计模式 154
6.2.3 匹配合适的模式 160
6.2.4 确定问题内部的并发性 161
6.2.5 选择软件控制策略 162
6.2.6 处理边界条件 163
6.2.7 权衡开发策略的优先级 163
6.2.8 填补从高层需求到底层服务间的空白 164
6.2.9 用操作实现用例 164
6.2.10 将操作分配给类 165
6.2.11 设计优化 165
6.2.12 组织类 167
6.3 嵌入式系统详细设计 168
6.3.1 数据结构 168
6.3.2 关联的实现 169
6.3.3 对象接口 172
6.3.4 操作及其可见性 172
6.3.5 用于实现操作的算法 172
6.4 小结 173
参考文献 173
第7章 Linux 系统嵌入式软件开发 175
7.1 驱动程序开发 175
7.1.1 驱动程序结构 175
7.1.2 驱动程序分类 177
7.1.3 驱动程序加载方式 180
7.1.4 字符设备驱动程序实例 182
7.2 Linux 应用软件开发 184
7.2.1 嵌入式视频服务器 184
7.2.2 嵌入式Linux 的GUI 187
7.2.3 Qt/Embedded 简介 189
7.2.4 Qt/Embedded 的开发环境 192
7.2.5 Qt/Embedded 常用类 194
7.3 代码优化 196
7.3.1 代码优化分类 196
7.3.2 源代码优化 197
7.3.3 中间代码优化 199
7.3.4 目标代码优化 200
7.4 小结 200
参考文献 200
第8章 Windows CE 嵌入式软件开发 201
8.1 Windows CE 开发基础 201
8.1.1 BootLoader 定制 201
8.1.2 Windows CE 开发工具 203
8.2 Windows CE 驱动程序开发 205
8.2.1 Windows CE 驱动程序分类 205
8.2.2 Windows CE 流接口驱动结构 208
8.2.3 Windows CE 流接口驱动开发实例 211
8.3 Windows CE 应用程序开发 221
8.3.1 开发Windows CE 流接口驱动测试程序 221
8.3.2 Windows CE 中访问数据库 225
8.4 小结 229
参考文献 229
第9章 嵌入式软件测试 231
9.1 MISRA-C 编程规范 231
9.2 嵌入式软件静态测试 243
9.2.1 代码分析 243
9.2.2 错误分析 244
9.2.3 代码检查 244
9.3 嵌入式软件动态测试 245
9.3.1 白盒测试 246
9.3.2 黑盒测试 247
9.3.3 灰盒测试 247
9.4 嵌入式软件测试过程 248
9.4.1 过程模型 249
9.4.2 单元测试 251
9.4.3 集成测试 252
9.4.4 确认测试 253
9.4.5 系统测试 254
9.5 嵌入式软件测试工具 255
9.5.1 纯软件的测试工具 255
9.5.2 纯硬件的测试工具 256
9.5.3 软硬件结合的测试工具 256
9.5.4 主流嵌入式软件测试工具比较 257
9.6 小结 258
参考文献 258