第1章 嵌入式系统的简介
1.1 嵌入式软件开发实例的规格
1.1.1 自动售茶机功能描述
1.1.2 自动售茶机配置
1.1.3 自动售茶机操作流程
1.2 嵌入式软件开发和其他软件开发的区别
1.3 嵌入式软件开发的应用范围
1.4 嵌入式多任务软件开发常见错误归类及介绍
第2章 嵌入式系统的架构
2.1 嵌入式系统开发实例(自动售茶机)的系统架构
2.1.1 软件系统
2.1.2 硬件系统
2.1.3 微处理器(IBM PowerPC 405EP)
2.2 嵌入式系统的常见架构
2.2.1 嵌入式系统的软件
2.2.2 嵌入式系统的硬件
2.3 嵌入式微处理器
2.3.1 PowerPC系列
2.3.2 MIPS系列
2.3.3 ARM系列
2.3.4 DSP简介
2.3.5 TI DSP系列
2.4 嵌入式软件的开发环境简介
第3章 嵌入式系统的概念详解
3.1 嵌入式实时操作系统
3.1.1 引言
3.1.2 与通用操作系统的区别
3.1.3 VxWorks简介
3.1.4 Nucleus嵌入式操作系统简介
3.1.5 嵌入式Linux简介
3.1.6 嵌入式操作系统功能
3.1.7 嵌入式操作系统中重要多任务相关函数介绍
3.2 系统初始化
3.2.1 系统初始化的目的
3.2.2 系统初始化的范围
3.2.3 自动售茶机的初始化
3.3 任务
3.3.1 什么是任务
3.3.2 任务与函数的区别及任务的例子
3.3.3 一个CPU如何同时处理多个任务
3.3.4 多任务执行顺序优先级裁决
3.3.5 任务的状态
3.3.6 任务的划分
3.4 中断
3.4.1 什么是中断
3.4.2 中断向量表
3.4.3 中断处理过程
3.4.4 中断优先级
3.4.5 中断操作
3.4.6 中断和任务的区别
3.5 消息队列
3.5.1 什么是消息队列
3.5.2 消息队列的状态
3.5.3 消息队列的工作方式
3.6 信号灯
3.6.1 什么是信号灯
3.6.2 信号灯的用途
3.6.3 信号灯的基本操作实例
3.6.4 其他信号灯类型(VxWorks)
3.6.5 使用信号灯需要注意的问题
3.6.6 信号灯的实现
3.7 高速缓存(cache)介绍
3.7.1 高速缓存的模式(write-back模式和write-through模式)
3.7.2 缓存的操作(Flush和Invalidate)
第4章 嵌入式软件开发的编程风格
4.1 嵌入式系统编程语言
4.2 模块和文件的组织
4.3 C源文件和H头文件的组织
4.4 命名规则
4.5 程序的书写格式
4.6 可移植性编辑
第5章 嵌入式系统软件实例的详解
5.1 嵌入式多任务系列实例——自动售茶机
5.1.1 嵌入式系统的设计
5.1.2 自动售茶机系统任务和中断的划分
5.1.3 自动售茶机系统任务和中断的优先级设定
5.1.4 自动售茶机系统任务和中断之间的信息交换设计
5.1.5 自动售茶机系统初始化代码
5.1.6 自动售茶机系统中断代码
5.1.7 自动售茶机系统任务代码
5.2 任务的优先级设计
5.2.1 任务优先级设定原则
5.2.2 如何设计高优先级的任务
5.3 多任务之间的同步/互斥
5.3.1 信号灯和任务间同步
5.3.2 消息队列和任务间同步
5.3.3 信号灯和任务间互斥
5.3.4 信号灯操作的异常处理
5.3.5 用消息队列实现任务间互斥
5.4 多任务间的信息传递
5.4.1 在中断与任务之间的传递消息
5.4.2 任务与任务之间的传递消息
5.4.3 用信号灯来传递信息
5.5 中断处理程序设计
5.5.1 中断处理程序的时效性
5.5.2 中断处理程序中调用其他函数的限制
5.5.3 中断处理程序中屏蔽/允许同类中断
5.6 处理速度的提升(任务并行)
5.7 多任务环境下全局变量的保护——原子操作
5.7.1 错误现象
5.7.2 错误原因
5.7.3 如何解决原子操作的问题
5.8 多任务环境下全局变量的保护(volatile)
5.9 多任务环境下公共库函数的编写
5.10 出错处理及恢复
5.11 设备控制模块
5.11.1 引言
5.11.2 外部设备寄存器的访问
5.11.3 外部设备的寄存器分类
5.11.4 CPU与外部设备之间的通信
5.11.5 设备的错误处理
5.11.6 设备控制模块的分层设计
5.12 实时响应的实现
5.12.1 实时系统示例
5.12.2 实时时钟
5.12.3 实时时钟设备驱动程序的实现示例
5.12.4 实时应用系统的实现示例
参考文献