Low-cost deterministic C++ exceptions for embedded systems

作者: James Renwick , Tom Spink , Björn Franke

DOI: 10.1145/3302516.3307346

关键词:

摘要: The C++ programming language offers a strong exception mechanism for error handling at the level, improving code readability, safety, and maintainability. However, current implementations are targeted general-purpose systems, often sacrificing size, memory usage, resource determinism sake of performance. This makes exceptions particularly undesirable choice embedded applications where size paramount. Consequently, coding guidelines either forbid use exceptions, or tool chains omit altogether. In this paper, we develop novel implementation that eliminates these issues, enables their systems. We combine existing stack unwinding techniques with new approach to management run-time type information (RTTI). doing so create compliant implementation, providing bounded runtime while reducing requirements by up 82%, incurring only minimal overhead common case no exceptions.

参考文章(10)
Sandeep Koranne, Boost C++ Libraries Springer, Boston, MA. pp. 127- 143 ,(2011) , 10.1007/978-1-4419-7719-9_6
Wolfgang A. Halang, Matjaž Colnarič, DEALING WITH EXCEPTIONS IN SAFETY-RELATED EMBEDDED SYSTEMS IFAC Proceedings Volumes. ,vol. 35, pp. 477- 482 ,(2002) , 10.3182/20020721-6-ES-1901.00985
Alexander D. Stoyenko, Wolfgang A. Halang, Constructing Predictable Real Time Systems ,(1991)
Prakash Prabhu, Naoto Maeda, Gogul Balakrishnan, Franjo Ivančić, Aarti Gupta, Interprocedural exception analysis for C european conference on object-oriented programming. pp. 583- 608 ,(2011) , 10.5555/2032497.2032536
David W. Binkley, C++ in safety critical systems Annals of Software Engineering. ,vol. 4, pp. 223- 234 ,(1997) , 10.1023/A:1018962626979
Jun Lang, David B. Stewart, A study of the applicability of existing exception-handling techniques to component-based real-time software technology ACM Transactions on Programming Languages and Systems. ,vol. 20, pp. 274- 301 ,(1998) , 10.1145/276393.276395
Christophe de Dinechin, C++ exception handling for IA-64 Proceedings of the 1st conference on Industrial Experiences with Systems Software - Volume 1. pp. 8- 8 ,(2000) , 10.5555/1251503.1251511
John B. Goodenough, Exception handling Communications of the ACM. ,vol. 18, pp. 683- 696 ,(1975) , 10.1145/361227.361230
Suchitra Dhamu, None, Using C++ Efficiently In Embedded Applications Research & Reviews: Journal of Embedded System & Applications. ,vol. 3, pp. 8- 12 ,(2015)