嵌入式可配置实时操作系统eCos是一种完全免费的开放源代码的软件,适合于深度嵌入式应用。本书全面介绍eCos系统的基本结构,详细描述eCos开发环境的建立及其配置方法,从各个层次对eCos的各个组成部分进行阐述和分析,并通过实例说明如何开发基于eCos的嵌入式应用。本书附带光盘包含了最新版本的eCos 2.0源代码、联机说明、开发工具源代码以及应用程序eCos嵌入式Web服务器,可以直接使用光盘内容建立完整的eCos开发环境。
本书可作为广大嵌入式系统研发人员及其他相关科研人员的技术参考书,也可作为在校学生学习嵌入式系统的参考教材。
出版说明
前言
第1章 概述
1.1 什么是eCos
1.2 eCos的可配置性
1.3 eCos的组织结构
1.4 eCos的一些基本概念
第2章 eCos开发环境的建立
2.1 系统需求
2.2 开发工具
2.3 Cygwin的安装与设置
2.4 GNU交叉编译工具的编译与配置
2.5 eCos源码与配置工具的安装
2.6 建立eCos开发环境
第3章 eCos配置工具与编程实例
3.1 eCos图形配置工具
3.2 图形配置工具的使用
3.3 命令行配置工具
3.4 eCos应用程序
第4章 RedBoot
4.1 功能与应用
4.2 RedBoot命令
4.3 RedBoot的配置与编译
4.4 RedBoot的更新与运行
第5章 系统内核
5.1 系统内核结构
5.2 内核调度机制
5.3 内存分配
5.4 中断处理
5.5 例外处理
5.6 SMP支持
5.7 计数器与时钟
5.8 应用程序入口
第6章 线程与同步
6.1 线程的创建
6.2 线程信息的获取
6.3 线程的控制
6.4 线程的终止和消除
6.5 线程优先级操作
6.6 per-thread数据
6.7 同步原语
6.8 互斥体
6.9 条件变量
6.10 信号号
6.11 信箱
6.12 事件标志
6.13 Spinlock
第7章 标准C与数学库
7.1 标准C与数学库的配置
7.2 非ISO标准函数
7.3 数学库兼容方式
7.4 一些实现细节
7.5 线程安全性
7.6 C库启动函数
第8章 设备驱动程序与PCI库
8.1 设备驱动程序用户API
8.2 驱动程序与内核及HAL的接口
8.3 eCos驱动程序设计
8.4 串口驱动程序
8.5 PCI库
第9章 文件系统
9.1 文件系统表格
9.2 文件目录
9.3 同步
9.4 初始化和安装
9.5 文件操作
9.6 创建文件系统
9.7 RAM文件系统
9.8 ROM文件系统
9.9 文件操作实例
第10章 网络支持与编程
10.1 eCos网络配置
10.2 以太网驱动程序设计
10.3 TCP/IP协议栈支持
10.4 FTP客户端
10.5 DNS客户端
10.6 eCos网络编程实例
第11章 硬件抽象层与eCos移植
11.1 硬件抽象层HAL
11.2 硬件抽象层的结构
11.3 硬件抽象层接口
11.4 例外处理
11.5 虚拟向量
11.6 eCos的移植
第12章 组件结构与CDL
12.1 eCos的配置机制
12.2 eCos组织结构及编译过程
12.3 组件定义语言CDL
12.4 选项命名约定
12.5 Tcl简介
12.6 表达式和值
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实时特性
参考文献
嵌入式产品是一类充满巨大商机的产业。在开发嵌人式产品的时候,开发人员将面临选择哪种嵌入式操作系统的问题。有许多因素值得考虑:软件的价格问题、版税问题、开发工具的好坏、是否提供源代码、所提供的实时操作系统具有哪些特性等等。在许多情况下,价格和版税是首先考虑的因素,低成本的解决方案是一种最好的选择,降低成本价格是提高产品竞争力的一个重要举措。另一个必须考虑的问题是前期投资问题,将现有软件代码移植到新的硬件平台上时这一问题显得尤为突出,软件的移植能力在很大程度上会直接影响产品的开发周期。另外,软件的可重用性和配置能力也是开发嵌入式产品必须考虑的因素。采用嵌入式可配置实时操作系统egos便是针对所有这些问题的一个很好的解决方案。
eCos于1997年起源于Cygnus公司,后来成为Red Hat的一个非Linux嵌入式操作系统。在短短的几年时间内,eCos的发展极为迅速,它已逐渐被人们接受,并受到越来越多的嵌入式产品开发人员的青睐,目前市场上已经有了许多成功应用egos的嵌人式产品。eCos是一种适合于深度嵌入式应用的实时操作系统,它是一种免费的、无版权限制(无版税)的开放源代码的软件。eCos的独特之处是它的可配置能力和配置机制,这是其他嵌入式操作系统无法比拟的。此外,eCos还具有良好的开放性、兼容性和可扩展性,可移植能力强,目前它能支持十余种市场上流行的嵌入式处理器。开发人员在不同平台上进行移植时,几乎不用修改或稍加修改就可以完成应用程序的移植工作。
eCos不仅是开发嵌入式产品的一个很好的选择,还是学习嵌入式操作系统原理与方法的一个很好的实例教材。eCos除了提供了嵌人式实时操作系统所必须具备的全部功能外,它的配置机制、组织结构以及软件源码都值得其他软件借鉴。与其他嵌入式操作系统相比,egos简单、易学、易于操作,利用普通微机就可以很容易地建立一个完整的开发环境,而且不需要特殊的设备。加之它又是一种免费软件,因此特别适合国内学生将其作为学习和研究嵌入式系统的理想平台。为此,本书大部分操作和例子都以普通微机作为目标系统。本书光盘提供了eCos的全部源码、开发工具和应用程序,读者可以直接使用光盘提供的内容建立完整的开发平台。
全书共分十三章,为兼顾初学者和有经验的开发人员,采用从简到繁、由浅人深的方式对eCos进行全面阐述,读者按照本书内容的编排可以逐步了解和掌握eCos,并且可以着手开发自己的eCos应用。
本书读者对象包括广大嵌入式系统研发人员、在校学生以及其他嵌入式系统爱好者,要求具有一定的软件(C语言)编程经验和基本的硬件知识。
本书的编写得到了我的同事及家人的帮助和支持,窦强博士对本书初稿进行了细致的审阅,在此谨向他们表示衷心的感谢!
由于编者水平有限,书中难免存在一些错误和缺点,殷切希望读者批评指正。