WP6-12: Difference between revisions

From COMP4DRONES
Jump to navigation Jump to search
(Created page with "== Introduction == {|class="wikitable" | ID|| WP6-12 |- | Contributor || ENSMA |- | Levels || Tool |- | Require || Capella with AADL-like point of view plugin |- | Provide || Retro-engineering of Paparazzi C/C++ code into a Capella point of view, offset adjustment to avoid interferences in telemetry messages or in the kernel |- | Input || C/C++ code and Makefile of Paparazzi UAV |- | Output || Model for Capella AADL-like point of view, offsets computed by GC...")
 
Line 21: Line 21:
| Contact || grolleau at ensma.fr
| Contact || grolleau at ensma.fr
|}
|}
==Global workflow==
Our toolchain allows the retro-engineering of an autopilot programmed in C/C++, to obtain a AADL-like model, an extension of AADL semantics following COMP4DRONES implementation. The AADL-like model is expressed in a Capella Point of View, allowing the end-user to obtain a graphical representation of threads, functions seen as a dataflow graph, software buses and shared global variable access. The flow is represented in the following figure.
==Retro engineering of Paparazzi UAV autopilot==
Our framework is based on ''ANTLR'' and it is composed of a parsing engine, which is the program that is responsible for the traversal and the transformation of the parse tree.
The processing consists of three layers. From top to bottom, the program that performs the tree traversal and its text-to-text transformation layer. This program is built on top of the two other layers, which are provided by ''ANTLR'', namely the built parse tree as well as the generated bricks (lexer, parser, tokens, and the listeners).
Building the parse tree consists in parsing the GIMPLE code (e.g., Paparazzi GIMPLE files) that is conforming to the GIMPLE grammar (see Listing \ref{lst:gimplegrmr}) and requires the three given components of the first layer, namely the Parser, the Lexer, and the Tokens. Once the parse tree is built, it is then transformed into XML code. This process requires the generated listeners of the first layer.

Revision as of 13:51, 10 March 2023

Introduction

ID WP6-12
Contributor ENSMA
Levels Tool
Require Capella with AADL-like point of view plugin
Provide Retro-engineering of Paparazzi C/C++ code into a Capella point of view, offset adjustment to avoid interferences in telemetry messages or in the kernel
Input C/C++ code and Makefile of Paparazzi UAV
Output Model for Capella AADL-like point of view, offsets computed by GCD+ offset choosing method
C4D tooling System-Level modelling and analysis
TRL 3
Contact grolleau at ensma.fr

Global workflow

Our toolchain allows the retro-engineering of an autopilot programmed in C/C++, to obtain a AADL-like model, an extension of AADL semantics following COMP4DRONES implementation. The AADL-like model is expressed in a Capella Point of View, allowing the end-user to obtain a graphical representation of threads, functions seen as a dataflow graph, software buses and shared global variable access. The flow is represented in the following figure.


Retro engineering of Paparazzi UAV autopilot

Our framework is based on ANTLR and it is composed of a parsing engine, which is the program that is responsible for the traversal and the transformation of the parse tree. The processing consists of three layers. From top to bottom, the program that performs the tree traversal and its text-to-text transformation layer. This program is built on top of the two other layers, which are provided by ANTLR, namely the built parse tree as well as the generated bricks (lexer, parser, tokens, and the listeners).

Building the parse tree consists in parsing the GIMPLE code (e.g., Paparazzi GIMPLE files) that is conforming to the GIMPLE grammar (see Listing \ref{lst:gimplegrmr}) and requires the three given components of the first layer, namely the Parser, the Lexer, and the Tokens. Once the parse tree is built, it is then transformed into XML code. This process requires the generated listeners of the first layer.