Friederike Bruns, Irune Yarza, Philipp Ittershagen, Kim Grüttner
{"title":"Time Measurement and Control Blocks for Bare-Metal C++ Applications","authors":"Friederike Bruns, Irune Yarza, Philipp Ittershagen, Kim Grüttner","doi":"10.1109/FDL.2019.8876898","DOIUrl":null,"url":null,"abstract":"Precisely timed execution of resource constrained bare-metal applications is difficult, because the embedded software developer usually has to implement and check the timeliness of the executed application through manual interaction with timers or counters. In the scope of this work, we propose a concept for time annotation and control blocks in C++. Our proposed blocks can be used to measure and profile software block execution time. Furthermore, it can be used to control and enforce the software time behavior at run-time. We have implemented our concept in a C++ library and tested it on an ARM Cortex A9 bare-metal platform. The usage of our library has been evaluated on a critical flight-control software for a multi-rotor system. The results show that our concept is working, while still having some room for systematic accuracy testing and optimization.","PeriodicalId":162747,"journal":{"name":"2019 Forum for Specification and Design Languages (FDL)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 Forum for Specification and Design Languages (FDL)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FDL.2019.8876898","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Precisely timed execution of resource constrained bare-metal applications is difficult, because the embedded software developer usually has to implement and check the timeliness of the executed application through manual interaction with timers or counters. In the scope of this work, we propose a concept for time annotation and control blocks in C++. Our proposed blocks can be used to measure and profile software block execution time. Furthermore, it can be used to control and enforce the software time behavior at run-time. We have implemented our concept in a C++ library and tested it on an ARM Cortex A9 bare-metal platform. The usage of our library has been evaluated on a critical flight-control software for a multi-rotor system. The results show that our concept is working, while still having some room for systematic accuracy testing and optimization.