Template-based AADL automatic code generation
Kai HU, Zhangbo DUAN, Jiye WANG, Lingchao GAO, Lihong SHANG
Template-based AADL automatic code generation
Embedded real-time systems employ a variety of operating system platforms. Consequently, for automatic code generation, considerable redevelopment is needed when the platform changes. This results in major challenges with respect to the automatic code generation process of the architecture analysis and design language (AADL). In this paper, we propose a method of template-based automatic code generation to address this issue. Templates are used as carriers of automatic code generation rules from AADL to the object platform. These templates can be easily modified for different platforms. Automatic code generation for different platforms can be accomplished by formulating the corresponding generation rules and transformation templates. We design a set of code generation templates from AADL to the object platform and develop an automatic code generation tool. Finally, we take a typical data processing unit (DPU) system as a case study to test the tool. It is demonstrated that the autogenerated codes can be compiled and executed successfully on the object platform.
real-time system / template / formal methods / AADL / automatic code generation
[1] |
Hu K, Zhang T, Yang Z, Tsai W T. Simulation of real-time systems with clock calculus. Simulation Modelling Practice & Theory, 2015, 51: 69–86
CrossRef
Google scholar
|
[2] |
Lewis B. Architecture based model driven software and system development for real-time embedded systems. Lecture Notes in Computer Science, 2004, 2941: 249–260
CrossRef
Google scholar
|
[3] |
Hu K, Lei L, Tsai W T. Multi-tenant Verification-as-a-Service (VaaS) in a cloud. Simulation Modelling Practice & Theory, 2016, 60: 122–143
CrossRef
Google scholar
|
[4] |
SAE AS5506. Architecture Analysis and Design Language (AADL). SAE International, 2005
|
[5] |
SAE AS5506A. Architecture Analysis and Design Language (AADL) Standard, Version 2. SAE International, 2008
|
[6] |
Hu K, Zhang T, Yang Z, Tsai W T. Exploring AADL verification tool through model transformation. Journal of Systems Architecture, 2015, 61(3–4): 141–156
CrossRef
Google scholar
|
[7] |
SAE AS5506 Annex: Behavior Specification v2.0. 2011
|
[8] |
Franca R B, Bodeveix J P, Filali M, Rolland J F. The AADL behaviour annex – experiments and roadmap. In: Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems. 2007, 377–382
CrossRef
Google scholar
|
[9] |
Hu K, Zhang T, Yang Z. Multi-threaded code generation from Signal program to OpenMP. Frontiers of Computer Science, 2013, 7(5): 617–626
CrossRef
Google scholar
|
[10] |
Lundqvist K, Asplund L, Mitchell S. A formal model of the Ada Ravenscar tasking profile; protected objects. In: Proceedings of the International Conference on Reliable Software Technologies. 1999, 12–25
CrossRef
Google scholar
|
[11] |
Brun M, Delatour J, Trinquet Y. Code generation from aadl to a realtime operating system: an experimentation feedback on the use of model transformation. In: Proceedings of the 13th IEEE International Conference on Engineering of Complex Computer Systems. 2008: 257–262
|
[12] |
Dissaux P, Singhoff F. Stood and cheddar: AADL as a pivot language for analysing performances of real time architectures. In: Proceedings of the European Real Time System Conference. 2008
|
[13] |
Tao Y. Model verification and code generation technology of AADL. Chengdu: University of Electronic Science and Technology of China, 2009
|
[14] |
Varona-Gomez R, Villar E. AADL simulation and performance analysis in SystemC. In: Proceedings of the 14th IEEE International Conference on Engineering of Complex Computer Systems. 2009: 323–328
CrossRef
Google scholar
|
[15] |
Jahier E, Halbwachs N, Raymond P, Nicollin X, Lesens D. Virtual execution of AADL models via a translation into synchronous programs. In: Proceedings of the 7th ACM & IEEE International Conference on Embedded Software. 2007, 134–143
CrossRef
Google scholar
|
[16] |
Ouimet M, Lundqvist K, Nolin M. The timed abstract state machine language: an executable specification language for reactive real-time systems. In: Proceedings of the 15th International Conference on Real- Time and Network Systems. 2007
|
[17] |
Börger E, Stärk R. Abstract State Machines: A Method for High-Level System Design and Analysis. Springer Science & Business Media, 2012
|
[18] |
Yang Z, Hu K, Ma D, Pi L. Towards a formal semantics for the AADL behavior annex. In: Proceedings of the Conference on Design, Automation and Test in Europe. 2009, 1166–1171
|
[19] |
Pi L, Yang Z, Bodeveix J P, Filali M, Hu K, Ma D. A comparative study of FIACRE and TASM to define AADL real time concepts. In: Proceedings of the 14th IEEE International Conference on Engineering of Complex Computer Systems. 2009, 347–352
CrossRef
Google scholar
|
[20] |
Pi L, Bodeveix J P, Filali M. A comparative study of different formalisms to define AADL data communication. Seminaire, 2009
|
[21] |
Bodeveix J P, Chemouil D, Filali M, Strecker M. Towards formalising AADL in proof assistants. Electronic Notes in Theoretical Computer Science, 2005, 141(3): 153–169
CrossRef
Google scholar
|
[22] |
Filali-Amine M, Lawall J. Development of a synchronous subset of AADL. In: Proceedings of the International Conference on Abstract State Machines, Alloy, B and Z. 2010, 245–258
CrossRef
Google scholar
|
[23] |
Farail P, Gaufillet P, Canals A, Camus C L, Sciamma D, Michel P, Crégut X, Pantel M. The TOPCASED project: a toolkit in open source for critical aeronautic systems design. European Congress Embedded Real Time Software, 2006, 781(55–59): 82
|
[24] |
Yang Z, Hu K, Ma D, Bodeveix J P, Pi L, Talpin J P. From AADL to timed abstract state machines: a verified model transformation. Journal of Systems and Software, 2014, 93: 42–68
CrossRef
Google scholar
|
/
〈 | 〉 |