WP6-ESDE

From COMP4DRONES
Jump to navigation Jump to search

ESL embedded Software Design Environment (ESDE)

ID WP6-ESDE
Contributor ACORDE
Levels Tool, Platform
Require Linux, Virtual Platform Development Platform
Provide Executable System-Level modelling, automated embedded software generation, Virtual Platform based validation
Input SystemC models, RTOS API target, Platform target, Platform model
Output Functional and time performance validation. Close to production firmware generation and validation.
C4D tooling n.a.
TRL 4

In the past, for the design and development of a complete positioning and attitude solution like GLAD, ACORDE relied on a conventional design flow where a former hih-level model using Matlab was used. Then a manual translation was done to C++, which was tested on the final physical prototype. While proven, this approach had also some important disadvantages:

  • Enforces a sequential HW/SW development. HW/SW platform availability is a pre-condition for application development.
  • Long simulation times and lacks on the modelling language (e.g., no time modelling)
  • High translation effort from the high-level model (in Matlab) to the implementation language.

Contribution and Improvements

The basic idea of the ESL embedded Software Design Environment (ESDE) of ACORDE is summarized in the following illustration

ESDE framework in a nutshell

ESDE enables some key features for productivity improvement:

  • Building fast especifications/models, able to capture key concerns of the application (modularity, concurrency, time model) under a unified and standard language (SystemC).
  • Executable specifications, able to significantly speed-up functional validation vs Matlab model execution.
  • Automated embedded software generation mechanisms that avoid a significant translation effort from the system model to the implementation C/C++ code.
  • The possibility to develop the firmware with HW development, by relying on a virtual platform.
  • The possibility to validate the firmware (without availability of the physical platform), or a very close version to final production firmware, on top of the virtual platform

Detailed Description

A bit more detailed description of the ESDE framework developed by ACORDE in COMP4DRONES, is sketched in the following picture.

System-level methodology for the design and implementation of outdoor geo-referenced position&attitude estimation systems in COMP4DRONES

Status after C4D (Demo)

In C4D, ESDE has been further developped to support the especification a core functionality for attitude estimation (a multi-baseline attitude estimation or mbattes), in SystemC, which can be easily compiled into an executable model for its validation, as it is shown in this first demo video.

Moreover, ESDE allows the targeting of this SystemC specification onto C++ based implementation (as shown in a second video), which can be automatically produced to different targets. The targetting to a Linux-based platform supporting posix threads is illustrated on the following video, where the targeting of the mbattes SystemC specification is targeted to a Linux-based target, to generate an implementation (executable file), which is launched on a PC

In an additional clip, the final result of the executionshows the correctness of the implementation.

Interoperability

ESDE models are written in standard SystemC. The implementations target standard C++. For implementing RTOS services, it currently uses either POSIX API or FreeRTOS API.

System-Level application models relie on modules, channels, processes elements, which facilitates mapping with other C4D frameworks, like S3D. This has been tested for the mbattes example in a collaboration between ACORDE and the University of Cantabria.