出版说明
前言
第1章 概述
1.1 什么是eCos
1.1.1 起源与历史
1.1.2 功能与特性
1.1.3 eCos核心组件
1.1.4 对硬件的支持
1.1.5 eCos资源
1.2 eCos的可配置性
1.2.1 配置的必要性
1.2.2 配置方法
1.3 eCos的可配置性
1.3.1 eCos的层次结构
1.3.2 eCos源码结构
1.4 eCos的一些基本概念
1.4.1 组件框架
1.4.2 配置选项
1.4.3 组件
1.4.4 包
1.4.5 组件仓库
1.4.6 配置
1.4.7 目标系统
1.4.8 模板
1.4.9 属性
1.4.10 约束条件
1.4.11 冲突
1.4.12 组件定义语言DLL
第2章 eCos开发环境的建立
2.1 系统需求
2.1.1 主机系统需求
2.1.2 目标系统需求
2.2 开发工具
2.2.1 Cygwin
2.2.2 交叉编译工具
2.2.3 eCos配置工具
2.3 Cygwin的安装与设置
2.4 GNU交叉编译工具的编译与配置
2.5 eCos源代码与配置工具的安装
2.5.1 eCos的安装
2.5.2 eCos配置工具
2.6 建立eCos开发环境
2.6.1 基于x86的eCos开发平台
2.6.2 建立RedBoot引导环境
第3章 eCos配置工具与编程实例
3.1 eCos图形配置工具
3.2 图形配置工具的使用
3.2.1 组件仓库位置
3.2.2 配置文件的管理
3.2.3 模板选择
3.2.4 选项配置
3.2.5 冲突的解决
3.2.6 配置选项的查找
3.2.7 编译
3.2.8 执行
3.3 命令行配置工具
3.3.1 ecosconfig配置工具
3.3.2 使用ecosconfig配置eCos
3.4 eCos应用程序
3.4.1 使用编译工具
3.4.2 简单的hello程序
3.4.3 多线程编程例子
3.4.4 时钟和告警处理程序
第4章 RedBoot
4.1 功能与应用
4.1.1 RedBoot的安装
4.1.2 RedBoot用户界面
4.1.3 RedBoot环境配置
4.2 RedBoot命令
4.2.1 基本命令格式
4.2.2 RedBoot普通命令
4.2.3 Flash映像系统(FIS)
4.2.4 Flash内配置信息的管理
4.2.5 RedBoot程序执行控制
4.3 RedBoot的配置与编译
4.3.1 RedBoot软件结构
4.3.2 使用eCos图形配置工具
4.3.3 使用命令行配置工具ecosconfig
4.4 RedBoot的更新与运行
第5章 系统内核
5.1 系统内核结构
5.1.1 内核调度机制
5.1.2 位图调度器
5.1.3 多级队列调度器
5.2 调度器操作及API函数
5.2.1 内存分配机制
5.2.2 固定长度内存分配API
5.2.3 可变长度内存分析API
5.3 中断处理
5.3.1 线程与中断处理程序
5.3.2 中断的处理
5.3.3 内核中断处理API函数
5.4 例外处理
5.4.1 例外处理程序
5.4.2 例外处理内核API函数
5.5 SMP支持
5.5.1 SMP系统的启动
5.5.2 SMP系统的调度
5.5.3 SMP系统的中断处理
5.6 计数器与时钟表
5.6.1 计数器
5.6.2 时钟
5.6.3 告警器
5.7 应用程序入口
5.7.1 调用环境
5.7.2 应用程序编程要求
5.7.3 应用程序的启动
第6章 线程与同步
6.1 线程的创建
6.1.1 创建新线程
6.1.2 线程入口函数
6.1.3 线程优先级
6.1.4 堆栈和堆栈大小
6.1.5 线程创建例子程序
6.2 线程信息的获取
6.3 线程的控制
6.4 线程的终止和消除
6.4.1 线程终止函数
6.4.2 线程消除函数
6.5 线程优先级操作
6.6 per_thread数据
6.7 同步原语
6.8 互斥体
6.8.1 互斥体的实现与操作
6.8.2 互斥体的AIP函数
6.8.3 优先级倒置
6.9 条件变量
6.9.1 条件变量的使用
6.9.2 条件变量API函数
6.10 信号量
6.10.1 信号量的使用
6.10.2 信号量API函数
6.11 信箱
6.11.1 信箱的使用
6.11.2 信箱API函数
6.12 事件标志
6.12.1 事件标志的使用
6.12.2 事件标志的API函数
6.13 Spinlock
6.13.1 Spinlock的使用
6.13.2 Spinlock内核API函数
第7章 标准C与数学库
7.1 标准C与数学库的配置
7.2 非ISO标准函数
7.3 数学库兼容方式
7.4 一些实现细节
7.5 线程安全性
7.6 C库启动函数
第8章 设备驱动程序与PCI库
8.1 设备驱动程序用户API
8.1.1 设备的查找
8.1.2 向设备传送数据
8.1.3 读取设备数据
8.1.4 读取设备配置信息
8.1.5 对设备的配置
8.2 驱动程序与内核及HAL的接口
8.2.1 eCos中断模块
8.2.2同步
8.2.3 SMP支持
8.2.4 驱动程序模式
8.2.5 驱动程序与内核及HAL的接口API函数
8.3 eCos驱动程序设计
8.3.1 设备驱动程序的基本结构
8.3.2 串口驱动程序设计
8.4 串口驱动程序
8.4.1 串口raw serial)驱动程序
8.4.2 TTY驱动程序
8.5 PCI库
8.5.1 PCI总线操作
8.5.2 PCI库API
第9章 文件系统
9.1 文件系统表格
9.1.1 文件系统表(File System Table)
9.1.2 安装表(Mount Table)
9.1.3 文件表
9.2 文件目录
9.3 同步
9.4 初始化和安装
9.5 文件操作
9.5.1 文件系统的安装mount与卸载umount
9.5.2 open、creat和close函数
9.5.3 read、write和lseek函数
9.5.4 fcntl函数
9.5.5 dup和dup2函数
9.5.6 stat和fstat函数
9.5.7 access函数
9.5.8 link,unlink,remove和rename函数
9.5.9 mkdir和rmdir函数
9.5.10 opendir、readdir、rewinddir和closedir函数
9.5.11 chdir和getcwd函数
9.5.12 Socket操作
9.6 创建文件系统
9.7 RAM文件系统
9.7.1 文件和目录节点
9.7.2 目录
9.7.3 数据存储机制
9.8 ROM文件系统
9.9 文件操作实例
第10章 网络支持与编程
10.1 eCos网络配置
10.2 以太网驱动程序设计
10.2.1 底层驱动程序基本框架
10.2.2 驱动程序内部函数的实现
10.2.3 高层驱动程序函数
10.2.4 数据的发送和接收过程
10.3 TCP/IP协议栈支持
10.3.1 特性支持与配置
10.3.2 API函数
10.4 FTP客户端
10.5 DNS客户端
10.6 eCos网络编程实例
10.6.1 网络通信测试程序
10.6.2 编程实例——ping程序
第11章 硬件抽象层与eCos移植
11.1 硬件抽象层HAL
11.2 硬件抽象层的结构
11.2.1 HAL的类型
11.2.2 硬件抽象层文件描述
11.3 硬件抽象层接口
11.3.1 基本定义
11.3.2 体系结构描述
11.3.3 中断处理
11.3.4 I/O操作
11.3.5 Cache控制
11.3.6 SMP支持
11.3.7 诊断支持
11.3.8 链接脚本
11.4 例外处理
11.4.1 HAL的启动处理
11.4.2 同步例外与异步中断的处理
11.5 虚拟向量
11.6 eCos的移植
11.6.1 平台抽象层的移植
11.6.2 变体抽象层的移植
11.6.3 体系结构抽象层的移植
第12章 组件结构与CDL
12.1 eCos的配置机制
12.2 eCos组织结构及编译过程
12.2.1 软件包与组件仓库
12.2.2 软件包的内容与格式
12.2.3 编译过程
12.3 组件定义语言CDL
12.3.1 CDL命令
12.3.2 CDL属性
12.4 选项命名约定
12.5 Tcl简介
12.5.1 基本语法
12.5.2 变量
12.5.3 命令替换
12.5.4 引号和花括弧的使用
12.5.5 反斜杠和注释
12.6 表达式和值
12.6.1 选项的值
12.6.2 普通表达式
12.6.3 目标表达式
12.6.4 列表表达式
12.7 接口
12.8 更新ecos.db数据库
第13章 eCos嵌入式Web服务器
13.1 嵌入式Web服务器LibHTTPD
13.2 配置和建造eCos
13.3 Web服务器编程
13.4运行Web服务器
附录
附录A eCos硬件支持情况
附录B eCos实时特性
参考文献