ABSTRACT
Writing code that talks to hardware is a crucial part of any embedded project. Both productivity and quality are needed, but some flaws in the traditional development process make these requirements difficult to meet.
We have recently introduced a new approach of dealing with hardware, based on the Devil language. Devil allows to write a high-level, formal definition of the programming interface of a peripheral circuit. A compiler automatically checks the consistency of a Devil specification, from which it generates the low-level, hardware-operating code.
In our original framework, the generated code is dependent of the host architecture (CPU, buses, and bridges). Consequently, any variation in the hardware environment requires a specific tuning of the compiler. Considering the variability of embedded architectures, this is a serious drawback. In addition, this prevents from mixing different buses in the same circuit interface.
In this paper, we remove those limitations by improving our framework in two ways. (i) We propose a better isolation between the Devil compiler and the host architecture. (ii) We introduce Trident, a language extension aimed at mapping one or several buses to each peripheral circuit.
- 1.Display Data Channel Command Interface (DDC/CI). Web site. http://www.vesa.org/.]]Google Scholar
- 2.E. N. Dekker and J. M. Newcomer. Developing Windows NT device drivers : A programmer's handbook. Addison-Wesley, first edition, March 1999.]] Google ScholarDigital Library
- 3.IEEE Standards. 1076-1993 Standard VHDL Language Reference Manual, 1994. http://standards.ieee.org/.]] Google ScholarDigital Library
- 4.M. Levy. Microprocessor and DSP technologies unite for embedded applications. EDN Magazine, Issue 5, March 1998. http://www.ednmag.com/.]]Google Scholar
- 5.F. Merillon, L. Reveillere, C. Consel, R. Marlet, and G. Muller. Devil: An IDL for hardware programming. In Proceedings of the 4th Symposium on Operating Systems Design and Implementation (OSDI 2000), San Diego, California, October 2000.]] Google ScholarDigital Library
- 6.L. Reveillere, F. Merillon, C. Consel, R. Marlet, and G. Muller. A DSL Approach to Improve Productivity and Safety in Device Drivers Development. In Proceedings of the 15th International Conference on Automated Software Engineering (ASE 2000), Grenoble, France, September 2000. IEEE Computer Society Press.]] Google ScholarDigital Library
- 7.L. Reveillere and G. Muller. Improving Driver Robustness: an Evaluation of the Devil Approach. In Proceedings of the 2nd International Conference on Dependable Systems and Network (DSN 2001), G.oteborg, Sweden, July 2001.]] Google ScholarDigital Library
- 8.A. Rubini. Linux Device Drivers. O'Reilly, first edition, February 1998.]]Google Scholar
- 9.L. Reveillere, F. Merillon, C. Consel, R. Marlet, and G. Muller. The Devil Language. Technical Report RT-0244, INRIA, Rennes, France, October 2000.]]Google Scholar
- 10.Serial ATA. Web site. http://www.serialata.org/.]]Google Scholar
- 11.System Management Bus (SMBus). Web site. http://www.smbus.org/.]]Google Scholar
- 12.Scott Thibault, Renaud Marlet, and Charles Consel. A domain-specific language for video device driver: from design to implementation. In Proceedings of the 1st USENIX Conference on Domain-Specific Languages, Santa Barbara, California, October 1997.]] Google ScholarDigital Library
- 13.Universal Serial Bus (USB). Web site. http://www.usb.org/.]]Google Scholar
Index Terms
- Dealing with Hardware in Embedded Software: A General Framework Based on the Devil Language
Recommendations
Dealing with Hardware in Embedded Software: A General Framework Based on the Devil Language
Writing code that talks to hardware is a crucial part of any embedded project. Both productivity and quality are needed, but some flaws in the traditional development process make these requirements difficult to meet.
We have recently introduced a new ...
Dealing with Hardware in Embedded Software: A General Framework Based on the Devil Language
LCTES '01: Proceedings of the ACM SIGPLAN workshop on Languages, compilers and tools for embedded systemsWriting code that talks to hardware is a crucial part of any embedded project. Both productivity and quality are needed, but some flaws in the traditional development process make these requirements difficult to meet.
We have recently introduced a new ...
Embedded software development with projectional language workbenches
MODELS'10: Proceedings of the 13th international conference on Model driven engineering languages and systems: Part IIThis paper describes a novel approach to embedded software development. Instead of using a combination of C code and modeling tools, we propose an approach where modeling and programming is unified using projectional language workbenches. These allow ...
Comments