Running COLA on Embedded Systems

Model driven development has become state of the art in embedded systems software design. To take the resulting models to the designated hardware platform, automated code generation is sought for. The code obtained thereby must match the semantics of the model as closely as possible. In this paper we show how to map models specified using the Component Language (COLA) to C code in an automated manner. In addition we present our concepts for interfacing the effective hardware platform, which in case of embedded systems means the interaction with sensors and actuators. Using a prototypical implementation of the code generator, we validated our approach on a case study using LEGO Mindstorms, which embody all characteristics of embedded systems. This case study includes benchmarks comparing the automatically generated code to a hand-written version offering the same functionality.

[1]  Steve Vestal,et al.  The SAE Avionics Architecture Description Language (AADL) Standard: A Basis for Model-Based Architecture-Driven Embedded Systems Engineering , 2003 .

[2]  Manfred Broy,et al.  AutoMoDe - Notations, Methods, and Tools for Model-Based Development of Automotive Software , 2005 .

[3]  Ning Lu,et al.  Analysis and Comparison Of 3 Code Generation Tools , 2004 .

[4]  Oscar Castillo,et al.  Proceedings of the International MultiConference of Engineers and Computer Scientists 2007, IMECS 2007, March 21-23, 2007, Hong Kong, China , 2007, IMECS.

[5]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.

[6]  D. Putti,et al.  A qualitative analysis of automatic code generation tools for automotive powertrain applications , 1999, Proceedings of the 1999 IEEE International Symposium on Computer Aided Control System Design (Cat. No.99TH8404).

[7]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[8]  Peter H. N. de With,et al.  CARAT: a Toolkit for Design and Performance Analysis of Component-Based Embedded Systems , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[9]  Mats Per Erik Heimdahl,et al.  An approach to automatic code generation for safety-critical systems , 1999, 14th IEEE International Conference on Automated Software Engineering.

[10]  Manfred Broy,et al.  Software Engineering for Automotive Systems: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[11]  Klaus Buchenrieder,et al.  Multilevel testing for design verification of embedded systems , 2002, IEEE Design & Test of Computers.

[12]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[13]  Pao-Ann Hsiung,et al.  VERTAF: an application framework for the design and verification of embedded real-time software , 2004, IEEE Transactions on Software Engineering.

[14]  Zhonglei Wang,et al.  COLA -- The component language , 2007 .

[15]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[16]  Edward F. Moore,et al.  Gedanken-Experiments on Sequential Machines , 1956 .