第1章 绪论 1
1.1嵌入式系统概述 1
1.1.1嵌入式系统的定义 1
1.1.2嵌入式系统的特点 1
1.1.3嵌入式系统的组成 2
1.1.4嵌入式系统的应川领域 4
1.1.5 嵌入式系统的发展 5
1.2嵌式处理器 6
1.2.1嵌入式处理器的特点 6
1.2.2嵌入式处理器的分类 7
1.2.3ARM及ARM处理器 8
1.3嵌入式操作系统 9
1.3.1嵌入式操作系统的特点 9
1.3.2嵌入式操作系统的体系结构 10
1.3.3嵌入式操作系统的历史与与发展趋势 12
1.3.4嵌入式linux概述 14
1.3.5 V xWorks概述 14
1.3.6 windowsCE概述 15
1.4嵌入式系统软件开发 15
1.4.1嵌入式系统软件开发的特点 15
1.4.2 嵌入式系统软件开发工具 17
1.4.3嵌入式系统软件的开发流程 17
1.4.4嵌入式系统设备驱动程序开发概述 20
1.4.5嵌入式系统软件的调试 21
1.5思考与练习 24
第2章ARM处理器体系结构与开发工具 25
2.1ARM体系结构基础 25
2.1.1ARM体本系结构概念 25
2.1.2ARM运行模式 27
2.1.3ARM寄存器组 28
2.1.4AkM令架构 33
2.2ARM指令集概述 35
2.2.1 ARM指令分类与格式 35
2.2.2指令条件域 37
2.2.3 ARM指令寻址方式 38
2.3ARM指令详解 39
2.3.1数据处理指令 40
2.3.2跳转指令 45
2.3.3程序状态寄存器访问指令 47
2.3.4加载/存储指令 47
2.3.5协处理器指令 51
2.3.6异常产生指令 53
2.3.7伪指令 53
2.4 ADS集成开发环境 56
2.4.1 ADS简介 56
2.4.2 ADS命令行开发工具 57
2.4.3 ADS 工程创建 59
2.4.4 AXD调试器简介 62
2.5嵌入式ARM汇编程序设计 63
2.5.1汇编语言程序的生成 63
2.5.2高级语言与汇编语言的混合编程 65
2.6思考与练习 69
第3章 嵌入式操作系统 71
3.1嵌入式操作系统基本概念 71
3.1.1任务 71
3.1.2 互斥与同步 80
3.1.3任务间通信 85
3.1.4中断处理 90
3.1.5死锁 92
3.1.6定时器 94
3.2嵌入式系统调度策略 96
3.2.1嵌入式系统任务调度的特点与要求 98
3.2.2嵌入式系统调度算法 98
3.2.3嵌入式系统调度中的优先级反转问题 100
3.2.4 Windows CE调度方案 101
3.2.5嵌入式LirnUx调度方案 102
3.2.6 VxWorks调度方案 103
3.3嵌入式系统存储器管理 104
3.3.1嵌入式系统存储器管理机制概述 104
3.3.2 Windows CE存储器管理机制 104
3.3.3嵌入式Linux存储器管理机制 107
3.3.4 VxWorks存储器管理机制 108
3.4嵌入式操作系统封装层 110
3.4.1嵌入式操作系统封装层的意义 110
3.4.2嵌入式操作系统封装层实施方案 110
3.5思考与练习 119
第4章 基于Linux的嵌入式软件开发 120
4.1嵌入式Linux软件开发环境 120
4.1.1嵌入式Linux软件开发环境简介 120
4.1.2嵌入式Linux软件开发环境的建立 120
4.1.3 Linux系统目录组织 124
4.2 Linux常用命令介绍 124
4.2.1文件和目录操作命令 124
4.2.2显示命令 128
4.2.3 diff与patch命令 130
4.2.4 mount与umount命令 130
4.2.5用户账号管理 131
4.2.6组账号管理 133
4.2.7用户和组状态查询与临时切换 134
4.2.8文件权限操作 135
4.2.9进程管理操作 136
4.3嵌入式Linux软件开发工具 137
4.3.1 vi编辑器 137
4.3.2 GCC编译器 139
4.3.3 GDB调试器 140
4.3.4 ELF目标文件格式 147
4.3.5 GNU目标文件工具链 151
4.4 Linux She11 160
4.4.1 She11简介 160
4.4.2 She11语法 161
4.4.3 She11编程举例 167
4.5 Linux工程管理器make 169
4.5.1 make 工具概述 169
4.5.2 Makefile脚本文件语法规则 170
4.6嵌入式Linux驱动程序开发 175
4.6.1嵌入式Linux驱动程序机制综述 175
4.6.2嵌入式Linux设备驱动中的关键数据结构 176
4.6.3嵌入式Linux设备驱动开发中的基本接口函数 180
4.6.4嵌入式Linux设备驱动程序开发举例 184
4.6.5嵌入式Linux驱动程序的挂装与卸载 186
4.6.6嵌入式Linux驱动程序的测试 187
4.7嵌入式Linux应用程序开发 188
4.7.1嵌入式Linux多线程应用程序开发 188
4.7.2嵌入式Linux网络应用程序开发 190
4.8嵌入式Linux软件的调试 195
4.8.1嵌入式Linux调试连接通道的建立 195
4.8.2嵌入式Linux内核级调试 196
4.8.3嵌入式Linux用户级程序调试 197
4.9思考与练习 197
第5章 基于Windows CE的嵌入式软件开发 198
5.1 Windows CE 6.0软件开发环境 198
5.1.1 Windows CE 6.0软件开发环境的建立 198
5.1.2 Windows CE 6.0嵌入式软件开发流程 206
5.1.3创建用户工程 208
5.2 Windows CE 6.0开发工具 218
5.2.1 Visual Studio 218
5.2.2 eMbedded Visual C+++ 219
5.2.3 Platform Builder 220
5.2.4模拟器 220
5.2.5远程辅助开发工具 221
5.3 Windows CE 6.0系统定制 222
5.3.1 BSP的移植与导入 223
5.3.2内核组件配置 226
5.3.3内核映像的生成与下载 234
5.4 Windows CE 6.0驱动程序设计 242
5.4.1 Windows CE 6.0驱动程序机制概述 242
5.4.2 Windows CE 6.0设备管理器 244
5.4.3 Windows CE 6.0流接口驱动开发 245
5.5 Windows CE 6.0应用程序开发 259
5.5.1 Windows CE 6.0应用程序开发流程 260
5.5.2 Windows CE 6.0应用编程接口 274
5.5.3应用程序开发举例 278
5.6 Windows CE调试 291
5.6.1 Windows CE程序调试手段 291
5.6.2调试连接通道的建立 297
5.6.3内核级调试 297
5.6.4应用程序调试 299
5.7思考与练习 300
第6章 基于Vx Works的嵌入式软件开发 301
6.1 VxWorks软件开发环境 301
6.1.1 Tornado开发环境介绍 301
6.1.2 VxWorks软件开发流程 319
6.1.3创建用户工程 321
6.2 Tornado软件开发具 335
6.2.1交叉调试器(CrossWind Debugger) 336
6.2.2目标机系统状态浏览器(Browser) 337
6.2.3命令行执行工具(WindSb) 338
6.2.4软件逻辑分析仪(WindView) 339
6.2.5集成仿真器(V xSim) 340
6.2.6目标机服务器(Target Server) 341
6.3 VxWorks内核定制 344
6.3.1 V xWorks BSP的移植 344
6.3.2内核组件配置 360
6.3.3内核映像的生成与下载 365
6.4 VxWorks驱动程序开发 378
6.4.1 VxWorks驱动程序开发综述 378
6.4.2 VxWorks驱动程序的相关数据结构 384
6.4.3 VxWorks驱动程序的常用函数 404
6.4.4 VxWorks驱动程序编写举例 424
6.5 VxWorks应用程序开发 465
6.5.1应用程序开发流程 465
6.5.2 VxWorks应用编程接口 473
6.5.3应用程序开发 480
6.6 VxWorks调试 498
6.6.1调试连接通道的建立 498
6.6.2 VxWorks系统级调试模式 499
6.6.3 VxWorks任务级调试模式 500
6.7思考与练习 501
参考文献 502