第1章 概论
1.1 轮询系统(Polling Systems)
1.2 前后台系统(Foreground Background Systems)
1.3 嵌入式操作系统
1.3.1 简单内核
1.3.2 RTOS结构
1.3.3 多核RTOS
1.4 从裸板开始啊啊
1.5 aCoral
1.6 本书结构
习题
第2章 轮询系统
2.1 轮询系统概述
2.1.1 程序框架
2.1.2 调度
2.1.3 典型系统
2.2 搭建开发环境
2.3 启动Mini2440
2.3.1 为什么需要启动
2.3.2 启动流程
2.4 轮询的实现
习题
第3章 前后台系统
3.1 前后台结构
3.1.1 前后台系统的应用
3.1.2 运行方式
3.1.3 系统性能
3.1.4 前后台交换
3.1.5 典型系统
3.2 中断和中断服务
3.2.1 中断
3.2.2 中断服务
3.3 ARM的中断机制
3.4 一个简单的S3C2440中断服务
3.4.1 中断返回
3.4.2 中断注册
3.4.3 状态保存和现场恢复
3.5 前后台的实现
3.5.1 启动Mini2440
3.5.2 后台主循环
3.5.3 前台中断处理
习题
第4章 内核基础
4.1 基本术语
4.2 RTOS的特点
习题
第5章 搭建aCoral交叉开发环境
5.1 安装Ubuntu
5.2 安装交叉开发工具链
5.2.1 使用制作好的工具链
5.2.2 自己制作工具链
5.3 构建aCoral项目文件
习题
第6章 编写内核
6.1 aCoral线程
6.1.1 描述线程
6.1.2 线程优先级
6.2 调度策略
6.2.1 线程调度分层结构
6.2.2 调度策略分类
6.2.3 描述调度策略
6.2.4 查找调度策略
6.2.5 注册调度策略
6.3 基本调度机制
6.3.1 创建线程
6.3.2 调度线程
6.3.3 线程退出
6.3.4 其他基本机制
6.4 事务处理机制
6.4.1 中断管理
6.4.2 时钟管理
6.5 内存管理机制
6.5.1 主流内存管理机制
6.5.2 嵌入式系统对内存管理的特殊要求
6.5.3 aCoral的内存管理机制
6.5.4 aCoral内存管理初始化
6.6 线程交互机制
6.6.1 互斥机制
6.6.2 同步机制
6.6.3 通信机制
习题
第7章 启动内核
7.1 RTOS的引导模式
7.1.1 需要Bootloader的引导模式
7.1.2 不需要Bootloader的引导模式
7.2 Bootloader
7.3 aCoral环境下启动2440
7.4 启动aCoral
习题
第8章 移植内核
8.1 硬件抽象层移植
8.1.1 启动接口
8.1.2 中断接口
8.1.3 线程相关接口
8.1.4 时间相关接口
8.1.5 内存相关接口
8.1.6 开发板相关接口
8.1.7 多核(CMP)相关接口
8.1.8 移植文件规范
8.1.9 移植实例
8.2 项目移植
8.2.1 生成对应开发板的项目
8.2.2 添加到官网
习题
第9章 编译与运行内核
9.1 编译aCoral
9. 2 烧写aCoral到开发板ARM Mini2440
9.2.1 安装串口工具
9.2.2 安装烧写工具(DNW工具)
9.2.3 烧写与运行aCoral
习题
第10章 实时调度策略
10.1 任务调度策略基本概念
10.2 任务调度策略
10.2.1 典型实时调度策略
10.2.2 基于公平策略的时间片轮转调度
10.2.3 基于优先级的可抢占调度
10.2.4 RM调度算法
10.2.5 EDF调度算法
10.3 优先级反转及解决办法
10.3.1 优先级继承
10.3.2 优先级天花板
10.4 提高系统实时性的其他措施
10.4.1 评价RTOS的性能指标
10.4.2 提高实时任务响应性的措施
10.5 多核/处理器调度
10.5.1 多核/处理器技术
10.5.2 多核/处理器调度策略
习题
第11章 支持多核
11.1 ARM11 MPCore
11.2 多核运行机制
11.3 aCoral对多核机制的支持
11.3.1 多核启动
11.3.2 多核调度
习题
参考文献