开放实时嵌入式软件平台TOPPERS的研究现状
摘要:嵌入式系统开发趋势之一是基于平台的开发,包括硬件平台和软件平台。开放实时嵌入式软件平台TOPPERS(Toyohashi Open Platfo rm for Embedded Real-time System)是一个包含多种嵌入式实时操作系统、中间件以及软件开发工具在内的,可用于多个领域的综合性平台。本文介绍了TOPPERS的历史、现状及其下一个十年的发展计划和目标,以及TOPPERS在国内的发展情况和目前基于TOPPERS成果正在进行的工作。
关键词:实时操作系统;TOPPERS;ITRON;软件平台;嵌入式系统
引言
开放实时嵌入式软件平台TOPPERS(Toyohashi Open Platform for Embedded Real-time System)为一个包含多种嵌入式实时操作系统、中间件以及软件开发工具在内的,可用于多个领域的综合性平台。本文对TOPPERS的发展历史、研究现状和下一个十年的发展计划和目标进行了介绍和分析,一方面可以使TOPPERS的发展成果能够被更广泛地分享;另一方面为国内类似嵌入式软件平台的发展提供参考。TOPPERS的主要特色在于具有高质量的设计和较完善的体系,开放源代码,可免费使用,灵活的许可证使得其在商业应用上限制较少。
1 TOPPERS的历史
TOPPERS的历史并不长,但其起点是具有20多年历史的TRON(The Real-time Operating system Nucleus)和ITRON(Industrial TRON)项目。ITRON规范为一系列关于实时操作系统的开发规范,而不是一个具体的实时操作系统的实现,迄今共发布4个版本。任何组织或者个人都可以按照ITRON规范开发自己的实时操作系统。ITRON规范的开放性和弱标准性使其取得了巨大的成功,在日本已经成为事实上的工业标准。
但也正是因为ITRON规范的弱标准性,符合ITRON规范的实时操作系统版本彼此之间不能完全兼容,带来了过剩的多样性,造成过多重复开发。另外,随着嵌入式系统越发复杂,除了实时操作系统内核,其他中间件如文件系统、网络协议栈、设备驱动框架等也越发重要,而在这些方面,ITRON规范是比较薄弱的。
为了解决上述问题,适应未来嵌入式系统发展趋势,ITRON的发展在两个方向上继续进行,一个是由坂村健教授主导的T-Engine,另一个便是TOPPERS。TOPPERS和T-Engine不同点在于TOPPERS是以μITRON4.0规范为基础,主要针对硬实时系统,专注于工业控制领域,如汽车电子等;T-Engine由硬件上的T-Engine规范和软件上的以T-Kernel为代表的一系列实时内核以及相应的中间件这两大部分组成。
2 TOPPERS的现状
最近一次ITRON规范的发布要上溯至1999年的μITRON4.0规范。进入新世纪后,一方面嵌入式系统相关技术的发展日新月异;另一方面ITRON规范十多年未作更新,已经无法满足未来嵌入式系统应用的需求。因此,从2006年开始,TOPPERS协会在μITRON4.0规范基础之上开始制定新一代实时内核规范并加以实现,其大致路线图如图1所示。到2011年为止,该路线图中的绝大部分目标都已经达成,产生一大批成果,并且在消费电子和汽车电子等领域中得到广泛应用。
2.1 实时内核
TOPPERS/ASP(Advanced Standard Profile)内核是整个TOPPERS平台的基石和TOPPERS新一代实时内核的出发点,它遵循μITRON4.0规范标准功能集,并在TOPPERS/JSP内核基础上做了许多改进和扩展,包括可靠性和代码的可复用性,其内存占用较小,功能完善且有着不错的性能。通过扩展包的形式可以对该内核的功能进行扩展,如任务优先级可扩展到256级,支持优先级置顶协议的互斥量扩展和受限任务(类似FreeRTOS中的协程)扩展等。
TOPPERS/FMP(Flexible MultiProcessor)内核是TOPPERS/ASP内核针对多核处理器的扩展。该内核以静态的方式把任务分配给每个处理器,任务调度也在每个处理器上单独进行,任务可以在处理器之间灵活地进行迁移,并引入了自旋锁,支持粗粒度锁和细粒度锁。该内核主要适用于对称性多核处理器系统,以应对嵌入式系统多核化的趋势,目前支持ARM系列的多核处理器和瑞萨SH系列多核处理器。
TOPPERS/ATK1(Automotive Kernel)内核为一个面向汽车电子领域且遵循OSEK/VDX Version 2.2.1规范的实时内核。该内核通过了车载软件的相关认证,并且在代码实现上遵循MISRA-C设计规范,车载软件是TOPPERS的优势所在。除了实时内核外,TOPPERS还提供面向车载网络的CAN/LIN中间件和FlexRay中间件。目前,符合AUTOSAR规范的新一代车载实时内核TOPPERS/ATK2也正在开发中。
TOPPERS/HRP(High Reliable Profile)内核以μITRON4.0规范的保护功能扩展为基础,带有内存保护和时间保护功能,适用于带有MPU(Memory ProtectionUnit)或者MMU(Memory Management Unit)单元的系统。该内核主要应用于对可靠性有很高要求的领域,如航空航天等。内存保护主要包括防止对内存模块特定区域的访问,防止对特定系统数据的访问和防止分配过多内存等。时间保护主要指防止系统中某个任务或中断处理函数过多地占用处理器。
TOPPERS/ASP Safety内核基于TOPPERS/ASP内核1.3.1版本,对内核进行了大量的功能安全分析,在文档、代码注释和部分功能上做了相应修改,符合功能安全规范IEC61058中SIL3的要求,主要应用于强调功能安全的领域,如核电、石化等。
TOPPERS/SSP(Smallest Set Profile)以TOPPERS/ASP内核为基础,以尽可能地减少ROM/RAM使用量为目的,功能上遵循μITRON4.0规范中最低限度功能集。该内核主要针对资源非常有限的小规模嵌入式系统,如无线传感器应用等,删除了任务间通讯功能,精简了任务管理功能。在该内核中,每个任务优先级上只允许存在一个任务,最多允许16个任务存在,并且所有任务共享一个任务堆栈。该内核针对ARM Cortex-M3内核处理器的典型应用只需占用3.5 KB左右的ROM,附加上时间管理扩展包后也只占用5 KB左右的ROM。
2.2 中间件
TECS(TOPPERS Embedded Component System)是一个针对嵌入式系统,将各种软件模块封装为组件,并将组件结合在一起以实现快速构建大规模嵌入式软件的规范和工具的集合。其目的在于通过组件化的开发方式降低嵌入式软件的开发难度,减少重复开发,提高设计的抽象度和嵌入式软件的可复用性。在TECS中,通过组件描述语言CDL(Component Description Language)来描述组件的接口和属性等,然后解析器分析CDL并生成相应的C语言代码模板,最后用C语言实现相应的组件。由于TECS的底层是基于C语言的,且整个过程是静态的,所以其在代码大小和性能上开销很小,适合于嵌入式系统应用。TECS支持远程过程调用(Remote Procedure Call),可用于分布式嵌入式系统的开发。
TINET为一个面向嵌入式系统的精简TCP/IP协议栈,遵循ITRON TCP/IP API规范,并同时支持IPv4和IPv6协议。TINET的IPv4协议部分来源于FreeBSDVersion 3.4中的网络协议栈,IPv6协议部分来源于著名的IPv6实现KAME。TINET中许多概念与BSD套接字的概念类似,但重点考虑嵌入系统各种限制中最为严格的内存容量的限制,删除了一些传统BSD套接字接口的TCP/IP协议栈中对于嵌入式系统多余的功能。
SafeG为一个基于ARM TrustZone技术的嵌入式虚拟机(Embedded Hypervisor),支持在同一个处理器上同时运行实时操作系统(运行在信任状态下)和通用操作系统(运行在非信任状态下)并以硬件实现空间和时间上的隔离。SafeG负责信任状态和非信任状态之间的切换,并监控中断的产生,通用操作系统作为实时操作系统的若干任务被调度。通过SafeG,可以结合多种操作系统的特点于一体,带来更多的灵活性,同时保证安全性和可靠性。
2.3 TOPPERS内核的主要特征
不同的TOPPERS内核覆盖不同的嵌入式系统领域,但以下两点几乎为所有TOPPERS内核的主要特征。
(1)静态配置
常见的实时操作系统中,系统的配置通过C语言头文件中的宏定义来实现,系统资源是通过调用C语言API来创建的。在TOPPERS内核中,系统的配置和系统资源的创建是通过静态API来完成的。静态API的相关概念在μITRON4.0规范中引入。使用者通过编写由静态API组成的系统配置文件(文件后缀为.cfg)来描述系统的组成和所需的系统资源。TOPPERS内核配置器(configurator)将解析系统配置文件,并依据事先定义好的模板文件生成相应的C语言具体实现。
实时操作系统 TOPPERS ITRON 软件平台 嵌入式系统 相关文章:
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- 嵌入式实时操作系统设计探讨(10-15)
- 嵌入式实时操作系统μC/OS-II 在P89V51RD2中的移植(04-09)
- LPC2292的伪中断与伪中断处理(03-25)
- 网络处理器IP2022及其在嵌入式牌照识别系统中的应用设计(05-16)