{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:08:25Z","timestamp":1750306105760,"version":"3.41.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,12,6]],"date-time":"2017-12-06T00:00:00Z","timestamp":1512518400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"German Federal Ministry of Education and Research (BMBF) in the project EffektiV","award":["01IS13022"],"award-info":[{"award-number":["01IS13022"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2018,1,31]]},"abstract":"<jats:p>Robustness against errors in hardware must be considered from the very beginning of safety-critical system-on-chip firmware design. Therefore, we present fault injection for test-driven development (TDD) of robust firmware. As TDD is based on instant feedback to the designer, fault injection must execute within few minutes. In contrast to state-of-the-art approaches, we avoid long simulation scenarios and runtimes by injecting faults at the unit level and utilizing host-compiled simulation. Further, three static bit-level analyses of firmware source code and hardware specification reduce the fault set significantly. This accelerates fault injection by several orders of magnitude and enables robustness-aware TDD.<\/jats:p>","DOI":"10.1145\/3092943","type":"journal-article","created":{"date-parts":[[2017,12,6]],"date-time":"2017-12-06T21:23:15Z","timestamp":1512595395000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Fault Injection for Test-Driven Development of Robust SoC Firmware"],"prefix":"10.1145","volume":"17","author":[{"given":"Petra R.","family":"Maier","sequence":"first","affiliation":[{"name":"Technical University of Munich, Munich, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Veit B.","family":"Kleeberger","sequence":"additional","affiliation":[{"name":"Infineon Technologies, Neubiberg, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Daniel","family":"Mueller-Gritschneder","sequence":"additional","affiliation":[{"name":"Technical University of Munich, Munich, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ulf","family":"Schlichtmann","sequence":"additional","affiliation":[{"name":"Technical University of Munich, Munich, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,12,6]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/HLDVT.2010.5496655"},{"key":"e_1_2_1_2_1","volume-title":"Grosse-Kunstleve","author":"Abrahams David","year":"2003","unstructured":"David Abrahams and Ralf W . Grosse-Kunstleve . 2003 . Building hybrid systems with boost.python. C\/C++ Users J. 21, 7 (2003). David Abrahams and Ralf W. Grosse-Kunstleve. 2003. Building hybrid systems with boost.python. C\/C++ Users J. 21, 7 (2003)."},{"key":"e_1_2_1_3_1","volume-title":"Ullman","author":"Aho Alfred V.","year":"2007","unstructured":"Alfred V. Aho , Monica S. Lam , Ravi Sethi , and Jeffrey D . Ullman . 2007 . Compilers : Principles, Techniques and Tools (2 ed.). Pearson Education . Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2007. Compilers: Principles, Techniques and Tools (2 ed.). Pearson Education."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/11408901_19"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/RAMS.1998.653808"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/2555692.2555728"},{"volume-title":"The Binary File Descriptor Library","author":"Chamberlain Steve","key":"e_1_2_1_7_1","unstructured":"Steve Chamberlain . 1991. Libbfd , The Binary File Descriptor Library . Free Software Foundation . Steve Chamberlain. 1991. Libbfd, The Binary File Descriptor Library. Free Software Foundation."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463209.2488859"},{"volume-title":"Clang: a C language family frontend for LLVM. (May","year":"2008","key":"e_1_2_1_9_1","unstructured":"Clang. 2008. Clang: a C language family frontend for LLVM. (May 2008 ). Retrieved from http:\/\/clang.llvm.org. Clang. 2008. Clang: a C language family frontend for LLVM. (May 2008). Retrieved from http:\/\/clang.llvm.org."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2380356.2380375"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.955100"},{"volume-title":"Conference on Hardware\/Software Codesign and System Synthesis (CODES+ISSS\u201915)","author":"Ebrahimi Mojtaba","key":"e_1_2_1_12_1","unstructured":"Mojtaba Ebrahimi , Nour Sayed , Maryam Rashvand , and Mehdi B. Tahoori . 2015. Fault injection acceleration by architectural importance sampling . In Conference on Hardware\/Software Codesign and System Synthesis (CODES+ISSS\u201915) . Mojtaba Ebrahimi, Nour Sayed, Maryam Rashvand, and Mehdi B. Tahoori. 2015. Fault injection acceleration by architectural importance sampling. In Conference on Hardware\/Software Codesign and System Synthesis (CODES+ISSS\u201915)."},{"key":"e_1_2_1_13_1","unstructured":"Freescale Semiconductors. 2013. Qorivva MPC5643L microcontroller data sheet. (2013).  Freescale Semiconductors. 2013. Qorivva MPC5643L microcontroller data sheet. (2013)."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISQED.2014.6783385"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463209.2488855"},{"key":"e_1_2_1_16_1","unstructured":"Simon Graham. 2004. Writing drivers for reliability robustness and fault tolerant systems. Retrieved from https:\/\/download.microsoft.com\/download\/5\/b\/5\/5b5bec17-ea71-4653-9539-204a672f11cf\/FTdrv.doc.  Simon Graham. 2004. Writing drivers for reliability robustness and fault tolerant systems. Retrieved from https:\/\/download.microsoft.com\/download\/5\/b\/5\/5b5bec17-ea71-4653-9539-204a672f11cf\/FTdrv.doc."},{"key":"e_1_2_1_17_1","unstructured":"James W. Grenning. 2011. Test-driven Development for Embedded C. Pragmatic Bookshelf.  James W. Grenning. 2011. Test-driven Development for Embedded C. Pragmatic Bookshelf."},{"volume-title":"Unit Test Frameworks: Tools for High-quality Software Development. O\u2019Reilly Media","author":"Hamill Paul","key":"e_1_2_1_18_1","unstructured":"Paul Hamill . 2004. Unit Test Frameworks: Tools for High-quality Software Development. O\u2019Reilly Media , Inc . Paul Hamill. 2004. Unit Test Frameworks: Tools for High-quality Software Development. O\u2019Reilly Media, Inc."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISFEE.2014.7050579"},{"key":"e_1_2_1_20_1","volume-title":"Timely error detection for effective recovery in light-lockstep automotive systems. Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD\u201915) 34, 11 (Nov","author":"Hernandez Carles","year":"2015","unstructured":"Carles Hernandez and Jaume Abella . 2015. Timely error detection for effective recovery in light-lockstep automotive systems. Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD\u201915) 34, 11 (Nov . 2015 ). Carles Hernandez and Jaume Abella. 2015. Timely error detection for effective recovery in light-lockstep automotive systems. Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD\u201915) 34, 11 (Nov. 2015)."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN-W.2015.16"},{"key":"e_1_2_1_22_1","unstructured":"IP-XACT. 2014. IEEE standard 1685-2014 for IP-XACT. (2014).  IP-XACT. 2014. IEEE standard 1685-2014 for IP-XACT. (2014)."},{"volume-title":"Road Vehicles\u2014Functional Safety","author":"ISO","key":"e_1_2_1_23_1","unstructured":"ISO 26262. 2011. Road Vehicles\u2014Functional Safety . International Organization for Standardization (ISO) , Geneva, Switzerland . ISO 26262. 2011. Road Vehicles\u2014Functional Safety. International Organization for Standardization (ISO), Geneva, Switzerland."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.62"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629582"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/SSIRI.2009.38"},{"key":"e_1_2_1_27_1","unstructured":"Michael Kerrisk. 2016. Linux Programmer\u2019s Manual: Backtrace. Retrieved from http:\/\/man7.org\/linux\/man-pages\/man3\/backtrace_symbols.3.html.  Michael Kerrisk. 2016. Linux Programmer\u2019s Manual: Backtrace. Retrieved from http:\/\/man7.org\/linux\/man-pages\/man3\/backtrace_symbols.3.html."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/DFT.2013.6653593"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2744769.2747918"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/2492708.2492742"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-04288-1"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2968456.2968463"},{"volume-title":"Asia and South Pacific Design Automation Conference (ASP-DAC\u201916)","author":"Maier Petra R.","key":"e_1_2_1_33_1","unstructured":"Petra R. Maier , Daniel M\u00fcller-Gritschneder , Ulf Schlichtmann , and Veit B. Kleeberger . 2016b. Embedded software reliability testing by unit-level fault injection . In Asia and South Pacific Design Automation Conference (ASP-DAC\u201916) . Petra R. Maier, Daniel M\u00fcller-Gritschneder, Ulf Schlichtmann, and Veit B. Kleeberger. 2016b. Embedded software reliability testing by unit-level fault injection. In Asia and South Pacific Design Automation Conference (ASP-DAC\u201916)."},{"volume-title":"Guidelines for the Use of the C Language in Critical Systems","author":"MISRA-C.","key":"e_1_2_1_34_1","unstructured":"MISRA-C. 2012. Guidelines for the Use of the C Language in Critical Systems . Motor Industry Software Reliability Association . MISRA-C. 2012. Guidelines for the Use of the C Language in Critical Systems. Motor Industry Software Reliability Association."},{"key":"e_1_2_1_35_1","unstructured":"Oracle. 2010. Oracle Solaris 10 Software Developer Documentation - Writing Device Drivers. Retrieved from https:\/\/docs.oracle.com\/cd\/E18752_01\/pdf\/816-4854.pdf.  Oracle. 2010. Oracle Solaris 10 Software Developer Documentation - Writing Device Drivers. Retrieved from https:\/\/docs.oracle.com\/cd\/E18752_01\/pdf\/816-4854.pdf."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/DFT.2015.7315166"},{"key":"e_1_2_1_37_1","volume-title":"Discrete Mathematics and Its Applications","author":"Rosen Kenneth H.","unstructured":"Kenneth H. Rosen . 2003. Discrete Mathematics and Its Applications ( 5 th ed.). McGraw--Hill Science . Kenneth H. Rosen. 2003. Discrete Mathematics and Its Applications (5th ed.). McGraw--Hill Science.","edition":"5"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/2492708.2492805"},{"volume-title":"Agile Software Development: Best Practices for Large Software Development Projects","author":"Stober Thomas","key":"e_1_2_1_39_1","unstructured":"Thomas Stober and Uwe Hansmann . 2010. Agile Software Development: Best Practices for Large Software Development Projects . Springer-Verlag , Berlin . Thomas Stober and Uwe Hansmann. 2010. Agile Software Development: Best Practices for Large Software Development Projects. Springer-Verlag, Berlin."},{"key":"e_1_2_1_40_1","doi-asserted-by":"crossref","unstructured":"Gary Stringham. 2009. Hardware\/Firmware Interface Design: Best Practices for Improving Embedded Systems Development. Newnes.   Gary Stringham. 2009. Hardware\/Firmware Interface Design: Best Practices for Improving Embedded Systems Development. Newnes.","DOI":"10.1016\/B978-1-85617-605-7.00009-5"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086228.1086230"},{"volume-title":"UNITY: Unit Testing for C (especially Embedded Software).","year":"2015","key":"e_1_2_1_42_1","unstructured":"Unity. 2015 . UNITY: Unit Testing for C (especially Embedded Software). Retrieved from http:\/\/www.throwtheswitch.org\/unity\/. Unity. 2015. UNITY: Unit Testing for C (especially Embedded Software). Retrieved from http:\/\/www.throwtheswitch.org\/unity\/."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISQED.2013.6523621"},{"volume-title":"Embedded Firmware Solutions: Development Best Practices for the Internet of Things","author":"Zimmer Vincent","key":"e_1_2_1_44_1","unstructured":"Vincent Zimmer , Jiming Sun , Marc Jones , and Stefan Reinauer . 2015. Embedded Firmware Solutions: Development Best Practices for the Internet of Things . Apress . Vincent Zimmer, Jiming Sun, Marc Jones, and Stefan Reinauer. 2015. Embedded Firmware Solutions: Development Best Practices for the Internet of Things. Apress."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3092943","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3092943","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:39Z","timestamp":1750217439000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3092943"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,12,6]]},"references-count":44,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,1,31]]}},"alternative-id":["10.1145\/3092943"],"URL":"https:\/\/doi.org\/10.1145\/3092943","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2017,12,6]]},"assertion":[{"value":"2016-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-12-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}