{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,29]],"date-time":"2026-05-29T16:35:17Z","timestamp":1780072517287,"version":"3.54.0"},"reference-count":25,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2021,5,13]],"date-time":"2021-05-13T00:00:00Z","timestamp":1620864000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"German Ministry of Education and Research","award":["01IS17032L"],"award-info":[{"award-number":["01IS17032L"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2021,7,31]]},"abstract":"<jats:p>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 combined timing specification and 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 runtime. After the application of these time blocks, a trace-based verification against the block-based timing specification can be performed to obtain evidence on the correct implementation and usage of the time blocks on the target platform. We have implemented our time block concept in a C++ library and tested it on an ARM Cortex A9 bare-metal platform. The combined usage of timing specification and our time block library has been successfully evaluated on a critical flight-control software for a multi-rotor system.<\/jats:p>","DOI":"10.1145\/3434401","type":"journal-article","created":{"date-parts":[[2021,5,13]],"date-time":"2021-05-13T10:08:32Z","timestamp":1620900512000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Time Measurement and Control Blocks for Bare-Metal C++ Applications"],"prefix":"10.1145","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3607-7443","authenticated-orcid":false,"given":"Friederike","family":"Bruns","sequence":"first","affiliation":[{"name":"Carl von Ossietzky University of Oldenburg, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3607-7443","authenticated-orcid":false,"given":"Irune","family":"Yarza","sequence":"additional","affiliation":[{"name":"Ikerlan Technology Research Centre, Spain"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Philipp","family":"Ittershagen","sequence":"additional","affiliation":[{"name":"OFFIS e.V., Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Kim","family":"Gr\u00fcttner","sequence":"additional","affiliation":[{"name":"OFFIS e.V., Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,5,13]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1017\/S096012951200028X"},{"key":"e_1_2_1_2_1","unstructured":"Eckard B\u00f6de Matthias B\u00fcker Werner Damm G\u00fcnter Ehmen Martin Fr\u00e4nzle Sebastian Gerwinn Thomas Goodfellow Kim Gr\u00fcttner Bernhard Josko Bj\u00f6rn Koopmann Thomas Peikenkamp Frank Poppen Philipp Reinkemeier Michael Siegel and Ingo Stierand. 2017. Design paradigms for multi-layer time coherency in ADAS and automated driving (MULTIC). In FAT-Schriftenreihe 302. Forschungsvereinigung Automobiltechnik e.V. (FAT).  Eckard B\u00f6de Matthias B\u00fcker Werner Damm G\u00fcnter Ehmen Martin Fr\u00e4nzle Sebastian Gerwinn Thomas Goodfellow Kim Gr\u00fcttner Bernhard Josko Bj\u00f6rn Koopmann Thomas Peikenkamp Frank Poppen Philipp Reinkemeier Michael Siegel and Ingo Stierand. 2017. Design paradigms for multi-layer time coherency in ADAS and automated driving (MULTIC). In FAT-Schriftenreihe 302. Forschungsvereinigung Automobiltechnik e.V. (FAT)."},{"key":"e_1_2_1_3_1","unstructured":"Eckard B\u00f6de Werner Damm G\u00fcnter Ehmen Martin Fr\u00e4nzle Kim Gr\u00fcttner Philipp Ittershagen Bernhard Josko Bj\u00f6rn Koopmann Frank Poppen Michael Siegel and Ingo Stierand. 2019. MULTIC-Tooling. In FAT-Schriftenreihe 316. Forschungsvereinigung Automobiltechnik e.V. (FAT).  Eckard B\u00f6de Werner Damm G\u00fcnter Ehmen Martin Fr\u00e4nzle Kim Gr\u00fcttner Philipp Ittershagen Bernhard Josko Bj\u00f6rn Koopmann Frank Poppen Michael Siegel and Ingo Stierand. 2019. MULTIC-Tooling. In FAT-Schriftenreihe 316. Forschungsvereinigung Automobiltechnik e.V. (FAT)."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/FDL.2019.8876898"},{"key":"e_1_2_1_5_1","unstructured":"Bjorn B\u00e4uchle. 2014. std::chrono\u2014Typesafe Time Keeping in C++. Retrieved from https:\/\/pm.fias.science\/attachments\/download\/1496\/chrono.pdf.  Bjorn B\u00e4uchle. 2014. std::chrono\u2014Typesafe Time Keeping in C++. Retrieved from https:\/\/pm.fias.science\/attachments\/download\/1496\/chrono.pdf."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024787"},{"key":"e_1_2_1_7_1","volume-title":"Technical Report","author":"SAFEPOWER Consortium","unstructured":"SAFEPOWER Consortium . 2017. D4.6 Final Cross-domain Public Demonstrator . Technical Report . OFFIS\u2013Institute for Information Technology . Retrieved from http:\/\/safepower-project.eu\/consultant_project\/mortgage-advisor-2-2\/. SAFEPOWER Consortium. 2017. D4.6 Final Cross-domain Public Demonstrator. Technical Report. OFFIS\u2013Institute for Information Technology. Retrieved from http:\/\/safepower-project.eu\/consultant_project\/mortgage-advisor-2-2\/."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 19th International Conference on Real-Time and Network Systems. Irccyn.","author":"Cordovilla Mikel","year":"2011","unstructured":"Mikel Cordovilla , Fr\u00e9d\u00e9ric Boniol , Julien Forget , Eric Noulard , and Claire Pagetti . 2011 . Developing critical embedded systems on multicore architectures: The Prelude-SchedMCore toolset . In Proceedings of the 19th International Conference on Real-Time and Network Systems. Irccyn. Mikel Cordovilla, Fr\u00e9d\u00e9ric Boniol, Julien Forget, Eric Noulard, and Claire Pagetti. 2011. Developing critical embedded systems on multicore architectures: The Prelude-SchedMCore toolset. In Proceedings of the 19th International Conference on Real-Time and Network Systems. Irccyn."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3328799"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11241-010-9101-x"},{"key":"e_1_2_1_11_1","unstructured":"GeeksforGeeks. 2017. Chrono in C++. Retrieved from https:\/\/www.geeksforgeeks.org\/chrono-in-c\/.  GeeksforGeeks. 2017. Chrono in C++. Retrieved from https:\/\/www.geeksforgeeks.org\/chrono-in-c\/."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00365999"},{"key":"e_1_2_1_13_1","unstructured":"Michael Gonz\u00e1lez Harbour. 2006. Programming Real-time Systems with C\/C++ and POSIX. Retrieved from https:\/\/www-users.cs.york.ac.uk\/burns\/papers\/c-posix.pdf.  Michael Gonz\u00e1lez Harbour. 2006. Programming Real-time Systems with C\/C++ and POSIX. Retrieved from https:\/\/www-users.cs.york.ac.uk\/burns\/papers\/c-posix.pdf."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/788018.788803"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/894106"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1286821.1286824"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2002.805821"},{"key":"e_1_2_1_18_1","doi-asserted-by":"crossref","unstructured":"Christopher Kormanyos. 2013. Real-Time C++ - Efficient Object-Oriented and Template Microcontroller Programming. Springer. 1\u2013357 pages. DOI:https:\/\/doi.org\/10.1007\/978-3-642-34688-0  Christopher Kormanyos. 2013. Real-Time C++ - Efficient Object-Oriented and Template Microcontroller Programming. Springer. 1\u2013357 pages. DOI:https:\/\/doi.org\/10.1007\/978-3-642-34688-0","DOI":"10.1007\/978-3-642-34688-0"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTSS.2017.00041"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.4204\/EPTCS.38.9"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2018.00031"},{"key":"e_1_2_1_23_1","volume-title":"Schabel and Steven Watanabe","author":"Matthias","year":"2020","unstructured":"Matthias C. Schabel and Steven Watanabe . 2020 . The Boost.Units library. Retrieved from https:\/\/github.com\/boostorg\/units. Matthias C. Schabel and Steven Watanabe. 2020. The Boost.Units library. Retrieved from https:\/\/github.com\/boostorg\/units."},{"key":"e_1_2_1_24_1","volume-title":"Proceedings of the Embedded Systems Conference","author":"Weinstein Ira","year":"1992","unstructured":"Ira Weinstein and Mike Frankel . 1992 . Timing in ada . In Proceedings of the Embedded Systems Conference (1992). Ira Weinstein and Mike Frankel. 1992. Timing in ada. In Proceedings of the Embedded Systems Conference (1992)."},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the Reliable Software Technologies: Ada-Europe","author":"Zamorano Juan","year":"2004","unstructured":"Juan Zamorano , Alejandro Alonso , Jos\u00e9 Antonio Pulido , and Juan Antonio de la Puente. 2004. Implementing execution-time clocks for the ada ravenscar profile . In Proceedings of the Reliable Software Technologies: Ada-Europe 2004 , Albert Llamos\u00ed and Alfred Strohmeier (Eds.). Springer, Berlin, 132--143. DOI:https:\/\/doi.org\/10.1007\/978-3-540-24841-5_10 Juan Zamorano, Alejandro Alonso, Jos\u00e9 Antonio Pulido, and Juan Antonio de la Puente. 2004. Implementing execution-time clocks for the ada ravenscar profile. In Proceedings of the Reliable Software Technologies: Ada-Europe 2004, Albert Llamos\u00ed and Alfred Strohmeier (Eds.). Springer, Berlin, 132--143. DOI:https:\/\/doi.org\/10.1007\/978-3-540-24841-5_10"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the Reliable SoftwareTechnologies: Ada-Europe","author":"Zamorano Juan","year":"2001","unstructured":"Juan Zamorano , Jos\u00e9 F. Ruiz , and Juan Antonio de la Puente. 2001. Implementing Ada.Real Time.Clock and absolute delays in real-time kernels . In Proceedings of the Reliable SoftwareTechnologies: Ada-Europe 2001 . Springer, Berlin, 317--327. DOI:https:\/\/doi.org\/10.1007\/3-540-45136-6_25 Juan Zamorano, Jos\u00e9 F. Ruiz, and Juan Antonio de la Puente. 2001. Implementing Ada.Real Time.Clock and absolute delays in real-time kernels. In Proceedings of the Reliable SoftwareTechnologies: Ada-Europe 2001. Springer, Berlin, 317--327. DOI:https:\/\/doi.org\/10.1007\/3-540-45136-6_25"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3434401","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3434401","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:31:48Z","timestamp":1750195908000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3434401"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,5,13]]},"references-count":25,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2021,7,31]]}},"alternative-id":["10.1145\/3434401"],"URL":"https:\/\/doi.org\/10.1145\/3434401","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,5,13]]},"assertion":[{"value":"2020-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-05-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}