摘要:简单介绍eCos的体系结构,详细论述eCos的可配置机制的实现原理,重点介绍eCos在以AT91M55800为核心的ARM7硬件平台上的移植步骤,结合本系统简要介绍内核的配置方法。最后给出了基于eCos应用软件的编写方法。
eCos(Embedded Configurable Operating System)最初是由Cygnus Solutions公司为面向嵌入式领域而开发的源码公开、具有很强的可移植性和可配置性的,适合于深度嵌入式开发的实时操作系统。现在eCos主要由eCosCentrIC公司和eCos开源社区共同开发维护。eCos的特性,特别是它的可配置性,能有效缩短嵌入式产品的开发周期并降低成本。
1 eCos的体系结构及可配置性
1.1 eCos体系结构
eCos采用模块化设计,将不同功能的软件分成不同的组件,使其分别位于系统的不同层次。这种层次结构实现了eCos的可配置性、可移植性、兼容性和可扩展性。图1是eCos系统的层次结构框图。硬件抽象层(HAL)使其上层次结构不必关心具体的硬件结构,因此只需对HAL进行修改就可以使整个eCos的应用移植到新的硬件平台上。
图1 eCos的层次结构框图
内核是eCos的一个核心组件,也是系统的一个可选组件,一些较为复杂的应用需要内核的支持。内核提供了多个可供选择的调度算法,可以很好地支持多任务处理。eCos内核提供了一组丰富的同步源语,完全能满足各种嵌入式应用的需求。内核还负责对中断和例外进行处理,它的中断滞后处理机制保证了系统的实时性。此外,内核还具有内存分配机制和定时机制,并提供多线程GDB调试支持。内核为上层软件和应用软件提供了丰富的API接口函数。
RedBoot是一个无内核的系统引导程序,是eCos的一个特殊应用。RedBoot可以加载eCos应用程序,并提供Debug支持,是开发eCos系统时非常有用的工具。设备驱动程序负责对硬件设备进行控制和管理,并完成设备数据的读/写操作。设备驱动程序自身也采用层次结构,上层驱动程序(相当于一个虚设备)可以调用下层驱动程序(物理设备)。驱动程序为上层软件提供标准的API函数,应用程序可以使用这些API函数对设备进行访问。
eCos包含的网络支持包支持完整的TCP/IP网络协议栈。eCos还提供了标准库(ANSI C库和数学库)、兼容层(POSIX兼容和uITRON兼容)、文件系统等。作为一种开放软件,eCos还可以很方便地容纳第三方软件。
1.2 可配置性原理
eCos的一个主要特性就是其可配置特性。可配置性最终是靠代码中的条件编译来完成的,条件编译是编程语言的特点,并不是eCos的原创。当一个软件工程中的条件编译项的数目和复杂性达到一定程度时,其中有一些条件编译项就会因为存在逻辑上的依赖关系而使条件编译产生冲突。而如何发现并有效解决这种冲突才是eCos可配置性的特点,如图2所示,其可配置特性的实现主要由组件定义语言CDL(Component Definition Language)、组件仓库ecos.db、图形配置工具configtool三者共同完成。
图2 可配置机制
本文关键字:硬件 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术