第1部分 嵌入式系统
第1章 嵌入式系统概述
1.1 什么是嵌入式系统
1.2 嵌入式系统的特点
1.3 嵌入式系统的体系结构
1.3.1 硬件平台
1.3.2 硬件抽象层
1.3.3 实时操作系统
1.3.4 实时应用程序
1.4 嵌入式系统的分类
1.5 嵌入式系统的应用
本章小结
思考与练习题
第2章 嵌入式系统设计基本概念
2.1 嵌入式硬件系统
2.1.1 嵌入式处理器
2.1.2 存储器
2.1.3 外围设备
2.2 嵌入式操作系统
2.2.1 嵌入式操作系统的发展
2.2.2 嵌入式实时操作系统的分类
2.2.3 嵌入式实时操作系统的可裁剪性及其实现
2.2.4 常用的实时操作系统
2.3 嵌入式系统的基本设计过程
2.3.1 需求分析
2.3.2 规格说明
2.3.3 体系结构设计
2.3.4 设计硬件构件和软件构件
2.3.5 系统调试与集成
2.4 本教程选择的软硬件平台
2.4.1 教学硬件平台——ARM
2.4.2 教学软件平台——Linux
本章小结
思考与练习题
第2部分 嵌入式系统硬件开发技术
第3章 基于ARM的处理器体系结构
3.1 ARM体系结构
3.1.1 ARM微处理器结构
3.1.2 ARM工作状态
3.1.3 ARM微处理器的寄存器组织
3.1.4 ARM微处理器的指令结构
3.2 ARM9处理器简介
3.2.1 与ARM7处理器比较
3.2.2 OMAP5912处理器介绍
本章小结
思考与练习题
第4章 ARM微处理器的编程模型与指令系统
4.1 ARM微处理器的工作状态
4.2 ARM微处理器的运行模式
4.3 ARM体系结构的存储器格式
4.3.1 大端格式
4.3.2 小端格式
4.4 寄存器组织
4.4.1 ARM状态下的寄存器组织
4.4.2 Thumb状态下的寄存器组织
4.5 ARM的异常
4.5.1 ARM体系结构所支持的异常类型
4.5.2 异常向量(Exception Vectors)
4.5.3 对异常的响应
4.5.4 从异常返回
4.5.5 各类异常的具体描述
4.5.6 异常的进入/退出
4.5.7 异常优先级(Exception Priorities)
4.6 ARM微处理器的指令系统基础
4.6.1 指令长度及数据类型
4.6.2 ARM微处理器的指令的分类与格式
4.6.3 指令的条件域
4.7 ARM指令的寻址方式
4.7.1 立即寻址
4.7.2 寄存器寻址
4.7.3 寄存器间接寻址
4.7.4 基址变址寻址
4.7.5 多寄存器寻址
4.7.6 堆栈寻址
4.7.7 相对寻址
4.8 ARM指令集
4.8.1 数据处理指令
4.8.2 乘法指令与乘加指令
4.8.3 程序状态寄存器访问指令
4.8.4 加载/存储指令
4.8.5 批量数据加载/存储指令
4.8.6 跳转指令
4.8.7 数据交换指令
4.8.8 移位指令(操作)
4.8.9 协处理器指令
4.8.10 异常产生指令
4.9 Thumb指令及应用
4.9.1 Thumb编程模型
4.9.2 Thumb状态切换
4.9.3 Thumb指令集特点
本章小结
思考与练习题
第3部分 嵌入式系统软件程序设计
第5章 嵌入式操作系统
5.1 嵌入式系统的进程
5.1.1 进程的概念
5.1.2 上下文切换
5.1.3 进程状态
5.1.4 进程调度
5.1.5 进程间通信机制
5.2 嵌入式操作系统的中断和时钟管理
5.2.1 中断管理
5.2.2 时钟管理
5.3 嵌入式操作系统的内存管理
5.3.1 内存管理的主要功能
5.3.2 虚拟内存的概念
5.4 常用嵌入式操作系统
5.4.1 mC/OS-II
5.4.2 Linux操作系统
本章小结
思考与练习题
第6章 嵌入式Linux开发环境及其在ARM上的移植
6.1 嵌入式Linux开发环境
6.1.1 交叉编译工具介绍
6.1.2 交叉编译环境的建立
6.2 嵌入式Linux在ARM平台上的移植
6.2.1 Linux内核源代码的基本组织情况
6.2.2 嵌入式Linux内核裁剪方法
6.2.3 嵌入式Linux内核定制过程
6.2.4 内核编译及装载
6.2.5 文件系统及其实现
本章小结
思考与练习题
第7章 设备驱动程序
7.1 概述
7.1.1 设备驱动原理
7.1.2 模块化编程
7.1.3 设备类型
7.1.4 设备号
7.2 设备文件接口
7.2.1 用户访问接口
7.2.2 一些重要数据结构
7.2.3 I/O操作
7.3 中断处理
7.3.1 注册中断处理程序
7.3.2 中断处理程序实现
7.4 应用实例
7.4.1 字符设备——按键驱动程序
7.4.2 网络设备——CS8900A芯片驱动程序
7.4.3 CAN总线驱动开发
本章小结
思考与练习题
第8章 用户图形接口GUI
8.1 嵌入式系统中的GUI
8.1.1 嵌入式GUI的发展需求
8.1.2 嵌入式GUI的功能特点
8.1.3 目前流行的嵌入式GUI系统
8.2 Qt/Embedded基础
8.2.1 Qt/Embedded简介
8.2.2 Qt/Embedded特点
8.2.3 Qt/Embedded体系架构
8.3 Qt/Embedded开发环境
8.3.1 Qt/E 2.x系列
8.3.2 Qt/E 3.x系列
8.4 Qt/Embedded开发实例
8.4.1 Qt/Embedded应用系统基本开发流程
8.4.2 Qt/Embedded下触摸屏驱动的设计
本章小结
思考与练习题
第4部分 嵌入式系统开发应用实例
第9章 基于OMAP5912的开发应用实例
9.1 MAP5912的结构和特点
9.1.1 ARM926EJ-S内核
9.1.2 TMS320C55x内核
9.1.3 存储器管理
9.1.4 直接存储器访问控制器(DMA)
9.1.5 时钟和电源管理
9.1.6 外围控制模块
9.2 基于OMAP5912的硬件平台设计
9.2.1 电源管理模块
9.2.2 存储模块
9.2.3 音频处理模块
9.2.4 外围接口
9.3 基于OMAP5912的软件系统设计
9.3.1 OMAP5912系统的软件架构
9.3.2 嵌入式Linux系统的启动流程
9.3.3 Bootloader及其移植
9.3.4 MontaVista Linux内核的移植
9.3.5 文件系统的移植
9.3.6 基于OMAP5912平台的Linux设备驱动程序
本章小结
思考与练习题
缩略语
参考文献