1、http:/【达内嵌入式培训】嵌入式软件平台 TOPPERS 的研究现状引言开放实时嵌入式软件平台 TOPPERS(Toyohashi Open Platform for Embedded Real-time System)为一个包含多种嵌入式实时操作系统、中间件以及软件开发工具在内的,可用于多个领域的综合性平台。本文对TOPPERS 的发展历史、研究现状和下一个十年的发展计划和目标进行了介绍和分析,一方面可以使TOPPERS 的发展成果能够被更广泛地分享;另一方面为国内类似嵌入式软件平台的发展提供参考。TOPPERS 的主要特色在于具有高质量的设计和较完善的体系,开放源代码,可免费使用,灵活
2、的许可证使得其在商业应用上限制较少。http:/1 TOPPERS 的历史TOPPERS 的历史并不长,但其起点是具有 20 多年历史的 TRON(The Real-time Operating system Nucleus)和 ITRON(Industrial TRON)项目。ITRON 规范为一系列关于实时操作系统的开发规范,而不是一个具体的实时操作系统的实现,迄今共发布 4 个版本。任何组织或者个人都可以按照 ITRON 规范开发自己的实时操作系统。ITRON 规范的开放性和弱标准性使其取得了巨大的成功,在日本已经成为事实上的工业标准。但也正是因为 ITRON 规范的弱标准性,符合 IT
3、RON 规范的实时操作系统版本彼此之间不能完全兼容,带来了过剩的多样性,造成过多重复开发。另外,随着嵌入式系统越发复杂,除了实时操作系统内核,其他中间件如文件系统、网络协议栈、设备驱动框架等也越发重要,而在这些方面,ITRON 规范是比较薄弱的。为了解决上述问题,适应未来嵌入式系统发展趋势,ITRON 的发展在两个方向上继续进行,一个是由坂村健教授主导的 T-Engine,另一个便是 TOPPERS。TOPPERS 和 T-Engine 不同点在于 TOPPERS 是以ITRON40 规范为基础,主要针对硬实时系统,专注于工业控制领域,如汽车电子等;T-Engine 由硬件上的 T-Engin
4、e 规范和软件上的以 T-Kernel 为代表的一系列实时内核以及相应的中间件这两大部分组成。2 TOPPERS 的现状最近一次 ITRON 规范的发布要上溯至 1999 年的 ITRON40 规范。进入新世纪后,一方面嵌入式系统相关技术的发展日新月异;另一方面 ITRON 规范十多年未作更新,已经无法满足未来嵌入式系统应用的需求。因此,从 2006 年开始,TOPPERS 协会在 ITRON40 规范基础之上开始制定新一代实时内核规范并加以实现,其大致路线图如图 1 所示。到 2011 年为止,该路线图中的绝大部分目标都已经达成,产生一大批成果,并且在消费电子和汽车电子等领域中得到广泛应用。
5、 http:/21 实时内核TOPPERSASP(Advanced Standard Profile)内核是整个 TOPPERS 平台的基石和 TOPPERS 新一代实时内核的出发点,它遵循 ITRON4 0 规范标准功能集,并在 TOPPERSJSP 内核基础上做了许多改进和扩展,包括可靠性和代码的可复用性,其内存占用较小,功能完善且有着不错的性能。通过扩展包的形式可以对该内核的功能进行扩展,如任务优先级可扩展到 256 级,支持优先级置顶协议的互斥量扩展和受限任务(类似 FreeRTOS 中的协程) 扩展等。TOPPERSFMP(Flexible MultiProcessor)内核是 TO
6、PPERSASP 内核针对多核处理器的扩展。该内核以静态的方式把任务分配给每个处理器,任务调度也在每个处理器上单独进行,任务可以在处理器之间灵活地进行迁移,并引入了自旋锁,支持粗粒度锁和细粒度锁。该内核主要适用于对称性多核处理器系统,以应对嵌入式系统多核化的趋势,目前支持 ARM 系列的多核处理器和瑞萨 SH 系列多核处理器。TOPPERSATK1(Automotive Kernel)内核为一个面向汽车电子领域且遵循 OSEKVDX Version 221规范的实时内核。该内核通过了车载软件的相关认证,并且在代码实现上遵循 MISRA-C 设计规范,车载软件是 TOPPERS 的优势所在。除了
7、实时内核外,TOPPERS 还提供面向车载网络的 CANLIN 中间件和FlexRay 中间件。目前,符合 AUTOSAR 规范的新一代车载实时内核 TOPPERSATK2 也正在开发中。TOPPERSHRP(High Reliable Profile)内核以 ITRON40 规范的保护功能扩展为基础,带有内存保护和时间保护功能,适用于带有 MPU(Memory ProtectionUnit)或者 MMU(Memory Management Unit)单元的系统。该内核主要应用于对可靠性有很高要求的领域,如航空航天等。内存保护主要包括防止对内存模块特定区域的访问,防止对特定系统数据的访问和防止
8、分配过多内存等。时间保护主要指防止系统中某个任务或中断处理函数过多地占用处理器。TOPPERSASP Safety 内核基于 TOPPERSASP 内核 131 版本,对内核进行了大量的功能安全分析,在文档、代码注释和部分功能上做了相应修改,符合功能安全规范 IEC61058 中 SIL3 的要求,主要应用于强调功能安全的领域,如核电、石化等。TOPPERSSSP(Smallest Set Profile)以 TOPPERSASP 内核为基础,以尽可能地减少 ROMRAM 使用量为目的,功能上遵循 ITRON40 规范中最低限度功能集。该内核主要针对资源非常有限的小规模嵌入式系统,如无线传感器
9、应用等,删除了任务间通讯功能,精简了任务管理功能。在该内核中,每个任务优先级上只允许存在一个任务,最多允许 16 个任务存在,并且所有任务共享一个任务堆栈。该内核针对ARM Cortex-M3 内核处理器的典型应用只需占用 35 KB 左右的 ROM,附加上时间管理扩展包后也只占用 5 KB 左右的 ROM。http:/22 中间件TECS(TOPPERS Embedded Component System)是一个针对嵌入式系统,将各种软件模块封装为组件,并将组件结合在一起以实现快速构建大规模嵌入式软件的规范和工具的集合。其目的在于通过组件化的开发方式降低嵌入式软件的开发难度,减少重复开发,提
10、高设计的抽象度和嵌入式软件的可复用性。在 TECS 中,通过组件描述语言 CDL(Component Description Language)来描述组件的接口和属性等,然后解析器分析CDL 并生成相应的 C 语言代码模板,最后用 C 语言实现相应的组件。由于 TECS 的底层是基于 C 语言的,且整个过程是静态的,所以其在代码大小和性能上开销很小,适合于嵌入式系统应用。TECS 支持远程过程调用(Remote Procedure Call),可用于分布式嵌入式系统的开发。TINET 为一个面向嵌入式系统的精简 TCPIP 协议栈,遵循 ITRON TCPIP API 规范,并同时支持 IPv
11、4和 IPv6 协议。TINET 的 IPv4 协议部分来源于 FreeBSDVersion 34 中的网络协议栈,IPv6 协议部分来源于著名的 IPv6 实现 KAME。TINET 中许多概念与 BSD 套接字的概念类似,但重点考虑嵌入系统各种限制中最为严格的内存容量的限制,删除了一些传统 BSD 套接字接口的 TCPIP 协议栈中对于嵌入式系统多余的功能。SafeG 为一个基于 ARM TrustZone 技术的嵌入式虚拟机(Embedded Hypervisor),支持在同一个处理器上同时运行实时操作系统(运行在信任状态下 )和通用操作系统(运行在非信任状态下)并以硬件实现空间和时间上
12、的隔离。SafeG 负责信任状态和非信任状态之间的切换,并监控中断的产生,通用操作系统作为实时操作系统的若干任务被调度。通过 SafeG,可以结合多种操作系统的特点于一体,带来更多的灵活性,同时保证安全性和可靠性。23 TOPPERS 内核的主要特征不同的 TOPPERS 内核覆盖不同的嵌入式系统领域,但以下两点几乎为所有 TOPPERS 内核的主要特征。(1)静态配置常见的实时操作系统中,系统的配置通过 C 语言头文件中的宏定义来实现,系统资源是通过调用 C 语言API 来创建的。在 TOPPERS 内核中,系统的配置和系统资源的创建是通过静态 API 来完成的。静态 API的相关概念在 I
13、TRON40 规范中引入。使用者通过编写由静态 API 组成的系统配置文件(文件后缀为cfg)来描述系统的组成和所需的系统资源。TOPPERS 内核配置器(configurator)将解析系统配置文件,并依据事先定义好的模板文件生成相应的 C 语言具体实现。 【达内嵌入式培训】http:/以 TOPPERSASP 内核为例,对静态配置流程进行简要描述。静态配置流程图如图 2 所示,静态配置可以分为 3 个阶段:配置器阶段 1。在该阶段中,配置器读取系统配置文件和符号取值表生成用于参数计算的 C 源文件,再经交叉 C 编译器编译、链接,生成包含具体参数的结果文件 (Motorola S 格式)和
14、对应的符号表。配置器阶段 2。在该阶段中,配置器依据上一阶段生成的符号表从参数计算结果文件中取得实际值,再依据事先定义好的模板文件,生成包含具体内核资源实现的内核,构成与初始化文件和相应的头文件(也可生成其他文件,由使用者自定义)。所生成的源文件与内核和应用一起编译、链接,即可生成最终的目标文件和相应的符号表。配置器阶段 3。该阶段为一个可选的检查阶段。配置器依据定义在模板文件中的规则,结合符号表对最终的目标文件(Motorola S 格式)进行检查,如违反规则,输出相应错误信息。采用静态配置,可以自动化高效地实现对系统的配置和系统资源的创建和分配,减少系统资源的浪费。由于所有系统资源在编译时
15、就已经创建完毕,不需要在运行时再进行创建工作,所以系统的启动过程也将得到加快。另外在静态配置过程中可以实现一些编译器所不能完成的复杂验证工作,如堆栈的起始地址是否对齐、堆栈的大小是否对齐等。(2)TOPPERS 标准中断模型由于中断处理和硬件紧密相关,常见的实时操作系统中,中断具体怎样处理没有过多的要求,而是留给移植时实现。在所有 TOPPERS 内核中,中断处理都遵循如图 3 所示的 TOPPERS 标准中断处理模型。 http:/该模型旨在提高中断处理的抽象度,提升中断相关代码的复用性和可移植性。在该模型中,所有中断都具有相应的中断优先级,中断优先级(默认-1 -7)和任务优先级(默认 1
16、15)之间过渡平滑,构成一个完整的优先级体系。在该模型中,每一个中断都有一条中断请求线接收一个或多个设备的中断请求。当一个中断请求发生后,经过相应的判断和比较之后,由中断处理函数处理。中断处理函数可以由使用者定义,也可由配置器自动生成。在中断处理函数中调用由使用者定义的中断服务例程。在某个中断的处理过程中,可以允许被具有更高优先级的中断打断,即允许中断嵌套。TOPPERS 标准中断处理模型中定义的所有环节都可以由硬件实现,大部分处理器的中断控制器也包含这些环节的功能,如 ARM Cortex-M3 架构处理器的嵌套向量中断控制器。若某个特定处理器无法硬件实现该模型中某个环节的功能,则可以通过软
17、件的方式模拟实现。软件模拟的方式会带来相应的开销,如延长中断响应时间等。然而这种开销相对于该模型所带来的中断处理抽象度的提升是可以接受的。结语本文对开放实时嵌入式软件平台 TOPPERS 的发展历史、目前研究现状( 包括主要成果物和主要特点)以及未来十年的发展方针进行了介绍和分析。其主要特色在于:TOPPERS 为一个相对完善的体系,覆盖了嵌入式系统的多个领域;TOPPERS 以 ITRON 项目 20 多年发展成果为基础,具有较高的品质和可靠性;灵活的许可证,使得可以自由使用 TOPPERS 的成果(包括商业应用),同时有较少的限制。成都嵌入式培训哪里好?选择达内嵌入式培训开启企业定制就业直通车,达内科技满足你高薪就业梦想!找 成都 IT 培训 100%推荐就业的软件测试培训机构,请咨询达内在成都嵌入式培训的老师!http:/达内培训费用?达内好不好?达内怎么样?达内就业?这些问题都可以在达内的网站上找到答案。在达内科技学习可以申请先就业后付款的方式让刚毕业大学生免除在达内培训费用上的担忧。100%推荐就业更是解决学员培训后的就业问题!达内咨询官网: