ABSTRACT
For non-embedded software, binary translation has shown to be a successful method for retargeting legacy software onto new platforms. To apply binary translation to embedded software, two issues must be considered. First of all, embedded software often involves real-time constraints that must still be met after translation. Secondly, embedded software contains a significant amount of code dedicated to peripheral device communication which necessitates device emulation. This paper focuses on the last aspect.
Usually, device emulation code is handcrafted which is tedious and error-prone. This paper presents a method to automatically generate device emulation code from a formal specification of source and target device operations. At the heart of the device operation semantics lie quantifier-free formulae in the theory of fixed width bit vector arithmetic which is a decidable fragment of first-order logic. To the best of our knowledge, this is the first attempt to generate device emulation code from a formal specification.
- Sorav Bansal and Alex Aiken. Binary translation using peephole superoptimizers. In ph8th USENIX Symposium on Operating System Design and Implementation (OSDI 2008), December 2008. Google Scholar
Digital Library
- Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. phSIGOPS Oper. Syst. Rev., 37 (5): 164--177, 2003. ISSN 0163--5980. Google Scholar
Digital Library
- Clark Barrett and Cesare Tinelli. CVC3. In Werner Damm and Holger Hermanns, editors, phProceedings of the 19th International Conference on Computer Aided Verification (CAV'07), volume 4590 of phLecture Notes in Computer Science, pages 298--302. Springer-Verlag, July 2007. Berlin, Germany. Google Scholar
Digital Library
- Clark Barrett, Roberto Sebastiani, Sanjit Seshia, and Cesare Tinelli. Satisfiability modulo theories. In Armin Biere, Hans van Maaren, and Toby Walsh, editors, phHandbook of Satisfiability, volume 4, chapter 8. IOS Press, February 2009. ISBN 978-1-58603-929-5.Google Scholar
- Fabrice Bellard. QEMU, a fast and portable dynamic translator. In phFREENIX Track: 2005 USENIX Annual Technical Conference, 2005. Google Scholar
Digital Library
- Marco Benedetti and Hratch Mangassarian. QBF-based formal verification: Experience and perspectives. phJournal on Satisability, Boolean Modeling and Computation, 5: 133--191, 2008.Google Scholar
Cross Ref
- Roberto Bruttomesso, Alessandro Cimatti, Anders Franzén, Alberto Griggio, and Roberto Sebastiani. The MathSAT 4 SMT solver. In CAV'08: Proceedings of the 20th International Conference on Computer Aided Verification, pages 299--303, Berlin, Heidelberg, 2008. Springer-Verlag. ISBN 978-3-540-70543-7. Google Scholar
Digital Library
- Randal E. Bryant, Daniel Kroening, Joël Ouaknine, Sanjit A. Seshia, Ofer Strichman, and Bryan Brady. Deciding bit-vector arithmetic with abstraction. In phProc. TACAS 2007, March 2007. Google Scholar
Digital Library
- Cristina Cifuentes and Vishv Malhotra. Binary translation: Static, dynamic, retargetable. In Proceedings of the International Conference on Software Maintenance (ICSM), pages 340--349. IEEE, 1996. Google Scholar
Digital Library
- Cristina Cifuentes, Mike Van Emmerik, and Norman Ramsey. The design of a resourceable and retargetable binary translator. In phWCRE '99: Proceedings of the Sixth Working Conference on Reverse Engineering, page 280, Washington, DC, USA, 1999. IEEE Computer Society. ISBN 0-7695-0303-9. Google Scholar
Digital Library
- Bryce Howard Cogswell. Timing insensitive binary-to-binary translation. PhD thesis, Carnegie Mellon University, Pittsburgh, Pennsylvania 15213, April 1995.Google Scholar
- Christopher L. Conway and Stephen A. Edwards. NDL: A domain-specific language for device drivers. In phLCTES'04: Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, pages 30--36, New York, NY, USA, 2004. ACM. ISBN 1-58113-806-7. Google Scholar
Digital Library
- Patrick Cousot and Radhia Cousot. Static determination of dynamic properties of programs. In phProceedings of the Second International Symposium on Programming, pages 106--130. Dunod, Paris, France, 1976.Google Scholar
- Leonardo de Moura and Nikolaj Bjørner. Z3: An efficient SMT solver. In Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 4963 of Lecture Notes in Computer Science, pages 337--340. Springer, 2008. Google Scholar
Digital Library
- Vijay Ganesh. Decision procedures for bit-vectors, arrays and integers. PhD thesis, Stanford University, Stanford, CA, USA, 2007. Google Scholar
Digital Library
- Vijay Ganesh and David L. Dill. A decision procedure for bit-vectors and arrays. In Computer Aided Verification (CAV'07), Berlin, Germany, July 2007. Springer-Verlag. Google Scholar
Digital Library
- Yeting Ge, Clark Barrett, and Cesare Tinelli. Solving quantified verification conditions using satisfiability modulo theories. In phCADE-21: Proceedings of the 21st International Conference on Automated Deduction, pages 167--182, Berlin, Heidelberg, 2007. Springer-Verlag. ISBN 978-3-540-73594-6. Google Scholar
Digital Library
- Peter S. Magnusson, Magnus Christensson, Jesper Eskilson, Daniel Forsgren, Gustav Hållberg, Johan Högberg, Fredrik Larsson, Andreas Moestedt, and Bengt Werner. Simics: A full system simulation platform. phIEEE Computer, 35 (2): 50--58, February 2002. Google Scholar
Digital Library
- Charles Gonsel, Renaud Marlet, and Gilles Muller. Devil: An IDL for hardware programming. In phProceedings of the Fourth Symposium on Operating Systems Design and Implementation, pages 17--30, 2000. Google Scholar
Digital Library
- Leonardo Moura and Nikolaj Bjørner. Efficient E-matching for SMT solvers. In phCADE-21: Proceedings of the 21st International Conference on Automated Deduction, pages 183--198, Berlin, Heidelberg, 2007. Springer-Verlag. ISBN 978-3-540-73594-6. Google Scholar
Digital Library
- Manish Prasad and Tzi-cker Chiueh. A binary rewriting defense against stack-based buffer overflow attacks. In Proceedings of the USENIX Annual Technical Conference, pages 211--224, 2003.Google Scholar
- Alexander Schrijver. Theory of Linear and Integer Programming. John Wiley & Sons, New York, NY, USA, June 1998. ISBN 978-0-471-98232-6. Google Scholar
Digital Library
- Richard L. Sites, Anton Chernoff, Matthew B. Kirk, Maurice P. Marks, and Scott G. Robinson. Binary translation. phCommun. ACM, 36 (2): 69--81, 1993. ISSN 0001-0782. Google Scholar
Digital Library
- Jun Sun, Wanghong Yuan, Mahesh Kallahalla, and Nayeem Islam. HAIL: a language for easy and correct device access. In EMSOFT'05: Proceedings of the 5th ACM International Conference on Embedded software, pages 1--9, New York, NY, USA, 2005. ACM. ISBN 1-59593-091-4. Google Scholar
Digital Library
- Henrik Theiling. phControl Flow Graphs For Real-Time Systems Analysis. PhD thesis, Saarland University, 2002.Google Scholar
- er(2004)}troeger_bintransJens Tröger. Specification-Driven Dynamic Binary Translation. PhD thesis, Queensland University of Technology, Brisbane, Australia, December 2004.Google Scholar
- Reinhard Wilhelm. Determining bounds on execution times. In R. Zurawski, editor, phHandbook on Embedded Systems, pages 14--1, 14-23. CRC Press, 2005.Google Scholar
- Lea Wittie, Chris Hawblitzel, and Derrin Pierret. Generating a statically-checkable device driver I/O interface. In phProceedings of the Workshop on Automatic Program Generation for Embedded Systems (APGES), October 2007.Google Scholar
Index Terms
Towards device emulation code generation
Recommendations
Towards device emulation code generation
LCTES '09For non-embedded software, binary translation has shown to be a successful method for retargeting legacy software onto new platforms. To apply binary translation to embedded software, two issues must be considered. First of all, embedded software often ...
Platform-dependent code generation for embedded real-time software
CASES '13: Proceedings of the 2013 International Conference on Compilers, Architectures and Synthesis for Embedded SystemsCode generation for embedded systems is challenging, since the generated code (e.g., C code) is expected to run on a heterogeneous set of target platforms with different characteristics, such as hardware/software architectures and programming ...
Using dynamic programming to generate optimized code in a Graham-Glanville style code generator
Proceedings of the SIGPLAN '84 symposium on compiler constructionWe have performed an investigation of using a dynamic programming to generate optimized code in a Graham-Glanville style code generator We use Earley's algorithm rather than an IR algorithm for parsing in the code generator Not only does the use of ...







Comments