内容简介
第1章 绪论
1.1 嵌入式系统的基本概念
1.2 嵌入式系统的特征
1.2.1 嵌入式系统的基本特征
1.2.2 嵌入式系统特征的模糊化
1.3 嵌入式系统的组成要素
1.3.1 嵌入式处理器
1.3.2 嵌入式操作系统
第2章 嵌入式系统的设计方法
2.1 嵌入式系统设计的基本流程
2.1.1 需求分析
2.1.3 结构设计
2.1.2 详细说明
2.1.4 组件设计
2.1.5 系统集成
2.2 嵌入式系统设计的流程模型
2.2.1 瀑布模型
2.2.2 逐步求精模型
2.2.3 螺旋模型
2.2.4 分层设计模型
2.2.5 其他流程模型
第3章 嵌入式系统的基础知识
3.1 基本概念
3.1.1 存储器结构
3.1.2 流水线技术
3.1.3 CISC RISC
3.1.4 大端存储和小端存储
3.1.5 存储器管理单元MMU
3.1.6 BSP
3.1.7 BootLoader和OSLoader
3.1.8 进程和线程
3.2 开发相关知识
3.2.1 ICE和ICD
3.2.2 其他硬件调试工具
3.2.3 JTAG
3.2.4 编译器和交叉编译器
3.2.5 模拟器和仿真器
4.1.1 适用情况
4.1.3 开发场景
4.1.2 需要的工具
4.1 面向硬件的开发模式
第4章 嵌入式系统的开发模式
4.2 面向操作系统的开发模式
4.2.1 适用情况
4.2.2 需要的工具
4.2.3 开发场景
4.3 开发模式的控制
第5章 ARM处理器概述
5.1 ARM处理器概述
5.1.1 ARM的发展历史
5.1.2 ARM处理器的特点
5.1.3 ARM微处理器系列
5.1.4 ARM微处理器的应用选型
5.2.1 工作状态
5.2 ARM处理器的工作状态和工作模式
5.2.2 ARM的工作模式
5.3 ARM处理器的寄存器
5.3.1 ARM处理器的寄存器结构
5.3.2 Thumb状态下的寄存器
5.4 ARM处理器的存储器组织结构
5.4.1 ARM的数据类型
5.4.2 存储器的格式
5.5 ARM处理器的异常
5.5.1 ARM体系结构所支持的异常类型
5.5.2 异常优先级(Exception Priorities)
5.5.3 应用程序中的异常处理
5.5.4 对异常的响应
5.5.6 异常进入/退出时的指令
5.5.5 异常返回
第6章 ARM指令系统
6.1 ARM处理器的寻址方式
6.1.1 立即数寻址
6.1.2 寄存器寻址
6.1.3 寄存器偏移寻址
6.1.4 寄存器间接寻址
6.1.5 寄存器基址变址寻址
6.1.6 多寄存器寻址
6.1.7 相对寻址
6.1.8 堆栈寻址
6.1.9 块拷贝寻址
6.2 ARM指令集合
6.2.1 ARM指令的基本格式
6.2.2 ARM指令详解
6.3 Thumb指令集合
6.3.1 Thumb指令集合
6.3.2 Thumb指令集与ARM指令集的区别
6.3.3 Thumb存储器访问指令
6.3.4 Thumb数据处理指令
6.3.5 Thumb跳转指令
6.3.6 Thumb杂项指令
6.4 伪指令
6.4.1 符号定义伪指令
6.4.2 数据定义伪指令
6.4.3 报告伪指令
6.4.4 汇编控制伪指令
6.4.5 杂项伪指令
6.4.6 ARM伪指令
6.4.7 Thumb伪指令
第7章 ARM程序设计
7.1 ARM汇编语言程序设计
7.1.1 汇编语言的语句格式
7.1.2 汇编程序中的符号
7.1.3 汇编语言程序中的表达式和运算符
7.1.4 汇编语言的程序结构
7.1.5 汇编语言程序设计举例
7.2 汇编语言与C/C++的混合编程
7.2.1 ATPCS规则
7.2.2 内嵌汇编
7.2.3 C程序与汇编程序相互调用
7.3 ARM集成开发环境ADS的使用
7.3.1 ADS简介
7.3.2 ADS快速使用教程
7.3.3 ADS具体介绍
第8章 嵌入式操作系统
8.1 嵌入式操作系统的发展
8.2 软件编程模式
8.2.1 无操作系统的软件编程模式
8.2.2 有操作系统的编程模式
8.3 嵌入式操作系统的特点
8.4.1 实时和分时操作系统
8.4 实时操作系统
8.4.2 实时操作系统的特点
第9章 嵌入式Linux操作系统概述
9.1 Linux的诞生
9.2 Linux相关的概念
9.2.1 Minix
9.2.2 Unix
9.2.3 共享软件(Shareware)
9.2.4 自由软件(Freeware或FreeSoftware)
9.2.5 免费软件(Freeware)
9.2.6 通用软件许可证(GPL:General Public License)
9.2.7 GNU
9.3 Linux操作系统的组成及其版本
9.3.1 Linux操作系统的组成
9.2.9 BSD
9.2.8 LGPL
9.3.2 Linux的版本
9.4 Linux的特点
9.4.1 Linux的优点和不足
9.4.2 Linux下的硬盘分区与文件系统
9.5 嵌入式Linux的概念
9.6 嵌入式Linux操作系统介绍
9.6.1 uClinux
9.6.2 RTLinux
9.6.3 DSPLinux
第10章 嵌入式Linux的开发
10.1 嵌入式Linux开发步骤
10.2.1 安装Linux操作系统
10.2 开发环境的构建
10.2.2 配置开发工具
10.3 BootLoader的开发
10.3.1 BootLoader的基本知识
10.3.2 BootLoader的开发过程
10.3.3 BootLoader的移植
10.4 Linux系统的构建
10.4.1 Linux内核的构建
10.4.2 Linux根文件系统的构建
10.4.3 针对嵌入式应用的Linux系统开发
10.5 Linux系统下设备驱动程序的开发
10.5.1 Linux设备驱动程序的概念
10.5.2 设备的类型
10.5.3 特殊设备的使用
10.5.5 设备驱动程序的开发
10.5.4 设备文件的创建
10.5.6 设备驱动程序中的问题
10.6 Linux应用程序开发
10.6.1 几种流行的GUI
10.6.2 Qt/Embedded编程
10.6.3 Qt/Embedded编程示例
10.7 Linux系统的启动流程
10.7.1 内核的引导
10.7.2 运行init
10.7.3 系统初始化
10.7.4 启动对应运行级别的守护进程
10.7.5 建立终端
10.7.6 登录系统
10.8.1 前期准备
10.8 Linux系统构建的实战练习
10.8.2 编译Linux内核
10.8.3 建立根文件系统
10.8.4 安装grub到U盘中
10.8.5 使用initrd内核作为根文件系统
10.9 常用的Linux工具和命令
10.9.1 vi的使用
10.9.2 GCC的使用
10.9.3 gdb的使用
10.9.4 ncftp工具的使用
10.9.5 mount和unmount指令
10.9.6 基本命令
10.9.7 Linux下软件安装指令
11.1.2 Windows XP Embedded
11.1.1 Windows CE
第11章 Windows CE操作系统
11.1 微软的嵌入式产品简介
11.1.3 Windows Embedded的应用领域
11.2 Windows CE简介
11.3 Windows CE的中断处理机制
11.3.1 中断体系结构
11.3.2 中断延迟
11.4 Windows CE的进程和线程
11.4.1 CE的进程
11.4.2 CE的线程
11.4.3 进程之间的通信
11.5.1 内存结构
11.5 Windows CE的内存管理
11.5.2 进程地址空间结构
11.5.3 堆和栈的内存分配
11.5.4 内存映射文件
11.6 Windows CE的编程模式
11.6.1 基于Win32的程序开发
11.6.2 基于MFC的程序开发
11.6.3 基于Microsoft.NET Framework精简版的程序开发
11.7 Windows CE的开发
11.7.1 开发层面
11.7.2 开发实例
11.7.3 CE系统的引导方式及其BootLoader
参考文献