Timed C: An Extension to the C Programming Language for Real-Time Systems

Timed C: An Extension to the C Programming Language for Real-Time Systems
复制标题

定时 C:实时系统 C 编程语言的扩展

DOI:
--
复制
发表时间:
2018
期刊:
IEEE Real Time Technology and Applications Symposium
影响因子:
--
通讯作者:
David Broman
David Broman
中科院分区:
--
文献类型:
--
作者:
Saranya Natarajan;David Broman

文献摘要

被引文献

相似文献

实时系统的设计和实现要求逻辑行为和时间行为都正确。存在几种使用逻辑时间概念的专门语言和工具,以及像Ada和RTJS这样包含对实时直接处理的工业级语言。尽管这些语言和工具已被证明是安全关键系统的良好替代方案,但如今大多数商用实时和嵌入式系统是用标准C编程语言实现的。这类系统通常针对专有裸机平台、符合标准POSIX的平台或开源操作系统。然而,基于这些应用程序编程接口(API)开发大型、可靠且可移植的系统容易出错。在本文中,我们提出了一种对C编程语言的扩展,称为定时C(Timed C),它具有最少的一组语言原语,并展示了如何使用一个可重定目标的源到源编译器来编译和执行简单、富有表现力且可移植的程序。为了评估我们的方法,我们对一颗立方星(CubeSat)卫星进行了案例研究。我们在定时C中实现核心定时方面,并通过将星载软件编译到飞行硬件和低成本实验平台上展示了可移植性。
The design and implementation of real-time systems require that both the logical and the temporal behavior are correct. There exist several specialized languages and tools that use the notion of logical time, as well as industrial strength languages such as Ada and RTJS that incorporate direct handling of real time. Although these languages and tools have shown to be good alternatives for safety-critical systems, most commodity real-time and embedded systems are today implemented in the standard C programming language. Such systems are typically targeting proprietary bare-metal platforms, standard POSIX compliant platforms, or open-source operating systems. It is, however, error prone to develop large, reliable, and portable systems based on these APIs. In this paper, we present an extension to the C programming language, called Timed C, with a minimal set of language primitives, and show how a retargetable source-to-source compiler can be used to compile and execute simple, expressive, and portable programs. To evaluate our approach, we conduct a case study of a CubeSat satellite. We implement the core timing aspects in Timed C, and show portability by compiling on-board software to both flight hardware, and to low-cost experimental platforms.