Difference between revisions of "Overview"

From TASTE
Jump to: navigation, search
(License)
m (Phrasing modifications.)
(5 intermediate revisions by 2 users not shown)
Line 42: Line 42:
 
TASTE is able to generate systems from a high-level abstraction. It can generate applications for the following architectures:
 
TASTE is able to generate systems from a high-level abstraction. It can generate applications for the following architectures:
 
*[http://en.wikipedia.org/wiki/X86 x86] with the following operating systems: [http://en.wikipedia.org/wiki/Linux Linux], [http://www.apple.com/macosx/ Mac OS X], [http://www.freebsd.org/ FreeBSD], [http://www.rtems.com/ RTEMS], and Windows.
 
*[http://en.wikipedia.org/wiki/X86 x86] with the following operating systems: [http://en.wikipedia.org/wiki/Linux Linux], [http://www.apple.com/macosx/ Mac OS X], [http://www.freebsd.org/ FreeBSD], [http://www.rtems.com/ RTEMS], and Windows.
*[http://en.wikipedia.org/wiki/ARM_architecture ARM] with [http://www.rtems.com/ RTEMS] and [http://en.wikipedia.org/wiki/Linux Linux] (successfully tested on [http://www.maemo.org/ Maemo] and [http://www.dslinux.org/ DSLinux]).
+
*[http://en.wikipedia.org/wiki/ARM_architecture ARM] with the GNAT Runtime. Successfully tested on STM32F405, F407, F429 boards, and the Crazyflie quadcopter.
 
*[http://en.wikipedia.org/wiki/SPARC SPARC] ([http://en.wikipedia.org/wiki/LEON LEON]) with [http://www.rtems.com/ RTEMS] and [http://polaris.dit.upm.es/~ork/ Open Ravenscar Kernel (ORK+)]. For LEON/RTEMS, TASTE can be interfaced with the [http://www.gaisler.com/cms/index.php?option=com_content&task=view&id=280&Itemid=190 RASTA board] which provides interfaces for [http://en.wikipedia.org/wiki/Serial_port serial], [http://en.wikipedia.org/wiki/SpaceWire Spacewire] and [http://en.wikipedia.org/wiki/MIL-STD-1553 1553] buses.
 
*[http://en.wikipedia.org/wiki/SPARC SPARC] ([http://en.wikipedia.org/wiki/LEON LEON]) with [http://www.rtems.com/ RTEMS] and [http://polaris.dit.upm.es/~ork/ Open Ravenscar Kernel (ORK+)]. For LEON/RTEMS, TASTE can be interfaced with the [http://www.gaisler.com/cms/index.php?option=com_content&task=view&id=280&Itemid=190 RASTA board] which provides interfaces for [http://en.wikipedia.org/wiki/Serial_port serial], [http://en.wikipedia.org/wiki/SpaceWire Spacewire] and [http://en.wikipedia.org/wiki/MIL-STD-1553 1553] buses.
  
Line 48: Line 48:
  
 
TASTE is made of a number of components and does not have a single licensing scheme.
 
TASTE is made of a number of components and does not have a single licensing scheme.
All tools can be used freely.
 
Most of the tools are free, open-source components (using a GPL or LGPL license) ; however a few tools are still closed-source.
 
This is an overview of the licenses used in the core TASTE components:
 
  
1. Runtime and code generators: these tools produce code that will be part of the final binary produced by TASTE. The license of these tools has been selected so that a runtime exception allows usage with your own software without contamination
+
All tools can be used freely; and almost all of them are available under open-source licenses (GPL or LGPL).  
  
 +
An overview of the licenses used in the core TASTE components follows below. As an executive summary: since the run-time libraries and the code created by TASTE's code generators will become a part of any "flight code" compiled binaries, '''they are licensed in a way that allows them to be freely used''';  with no licensing impacts or constraints of any kind.
  
* Ocarina — AADL parser and code generator, http://www.openaadl.org  — is licensed under the GPLv3 plus runtime exception
+
'''Simply put, their license does not "contaminate" your own software'''.
* ASN1SCC and DMT — ASN.1 toolchains, https://github.com/ttsiodras/asn1scc — are licensed under the GPLv2 (or later) plus runtime exception
 
* OpenGEODE — SDL editor and code generator, https://github.com/esa/opengeode —  is LGPL3 (no runtime)
 
* RTEMS — Real-Time Opération System,  https://www.rtems.org — is GPL2 with runtime exceptions with a specific runtime exception licence from https://www.rtems.org/license
 
* Buildsupport (model transformation) is LGPLv3 and has been developed specifically for TASTE
 
* TASTE orchestrator (build script) is is LGPLv3  and has been developed specifically for TASTE
 
  
 +
* [http://www.openaadl.org Ocarina] — AADL parser and code generator, licensed under the GPLv3 with run-time exceptions.
 +
* [https://github.com/ttsiodras/asn1scc ASN1SCC] and [https://github.com/ttsiodras/DataModellingTools DMT] — ASN.1 toolchains, licensed under the GPLv2 (or later) with run-time exceptions.
 +
* [https://github.com/esa/opengeode OpenGEODE] — SDL editor and code generator, licensed under LGPL3 (it includes no run-time).
 +
* [https://www.rtems.org RTEMS, Real-Time Executive for Multiprocessor Systems], licensed under GPL2 with a specific runtime exception licence from https://www.rtems.org/license. Newer versions are considering moving to even more liberal licenses (BSD).
 +
* Buildsupport (model transformation) - licensed under LGPLv3 (developed specifically for TASTE)
 +
* TASTE orchestrator (build script) - licensed under LGPLv3 (developed specifically for TASTE)
  
2. Modeling tools: these tools produce intermediate models or perform analysis on these models. As such, they generate no artefacts that are part of the final product, but only inputs to code generators.
+
TASTE also uses the following modeling tools (see below). These tools produce intermediate models or perform analysis on these models - and as such, '''they do not generate any artefacts that become part of the final binaries''' - they are only used to "feed" the code generators. The output of the code generators - the one that actually "flies" - is governed by the licences of the tools shown in the previous section.
  
 
+
* Interface, Deployment and Concurrency view editors are closed-source, developed specifically for TASTE by Ellidiss with a specific license that allows end-users to use the tools only in the context of TASTE. See ''$HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf'' inside the TASTE VM for more details.
* Interface, Deployment and Concurrency view editors are closed-source, developed specifically for TASTE by Ellidiss with a specific license that allows end-user to use the tools in the context of TASTE only. See $HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf in TASTE VM for more details.
+
* Cheddar and Marzhin (Scheduling Analysis) are third-party tools, integrated into TASTE by Ellidiss - and distributed under specific TASTE conditions that allow end-users to use them only in the context of TASTE. See ''$HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf'' in TASTE VM for more details.
* Cheddar and Marzhin (Scheduling Analysis) are third-party tool integrated to TASTE by Ellidiss, and distributed under specific TASTE conditions that allows end-user to use the tools in the context of TASTE only. See $HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf in TASTE VM for more details.
 

Revision as of 18:41, 23 July 2020

General

TASTE is a set of freely-available tools dedicated to the development of embedded, real-time systems. It is developed by the European Space Agency together with a set of partners from the space industry.

TASTE allows software designers to easily integrate heteregeneous pieces of code produced either manually (in C or Ada) or automatically by external modelling tools such as MATLAB Simulink and SDL using Pragmadev Studio or OpenGEODE.

Consistency of the integration is ensured through the use of two formal modelling languages : AADL and ASN.1.

By using TASTE, a software system architect can easily produce a complete and homogeneous system in three steps as depicted by the following figure (see below).

The TASTE process

Functionalities

  • Produce an homogeneous SW system from a set of heterogeneous functions (Written in C, Ada, Simulink, VHDL, SCADE, and/or SDL)
  • Provide facilities for schedulability analysis (Integrates CHEDDAR, MAST, and Marzhin)
  • Provide features for early verification and testing of the generated SW (GUIs and Python scripts)
  • Provides built-in behavioural modelling facilities (state machine editor) and automatic code generation
  • Generate multiple implementations (manage distribution) from one unique model: ease application portability
  • Supports the integration of FPGA components
  • Support expandability of features through openness to external tools.
  • Supports connection with SQL databases


Screenshots

This picture shows one of the main TASTE graphical editors, called "Interface View editor". This tool is used to capture the system logical architecture, in terms of functions connected through their interfaces:

TASTE Interface View Editor

This picture shows an example of an SDL/RTDS "function skeleton" generated by TASTE. TASTE generates an SDL state machine and all its "SIGNAL" and datatypes parameters, so that the end user only has to fill the content of the state machine. TASTE does the same for Ada, C, Simulink, SCADE, and VHDL.

SDL/RTDS "function skeleton"

TASTE also comes with two built-in (free) SDL editors that allow graphical description of state machines, and automatic code generation:

OpenGEODE built-in SDL editor

This picture shows a graphical user interface automatically generated by TASTE to "stub" a function declared in the Interface View. It is possible to interact with the rest of the system at runtime, by sending and receiving messages, and plotting data. Trace of execution (exchanges of messages) is recorded in the form of sequence diagrams (MSC documents) and can be converted to Python scripts. This way, complex interaction with the system can be programmed in order to validate operational scenario at runtime on the target.

automatically generated GUI

Supported architectures and targets

TASTE is able to generate systems from a high-level abstraction. It can generate applications for the following architectures:

License

TASTE is made of a number of components and does not have a single licensing scheme.

All tools can be used freely; and almost all of them are available under open-source licenses (GPL or LGPL).

An overview of the licenses used in the core TASTE components follows below. As an executive summary: since the run-time libraries and the code created by TASTE's code generators will become a part of any "flight code" compiled binaries, they are licensed in a way that allows them to be freely used; with no licensing impacts or constraints of any kind.

Simply put, their license does not "contaminate" your own software.

  • Ocarina — AADL parser and code generator, licensed under the GPLv3 with run-time exceptions.
  • ASN1SCC and DMT — ASN.1 toolchains, licensed under the GPLv2 (or later) with run-time exceptions.
  • OpenGEODE — SDL editor and code generator, licensed under LGPL3 (it includes no run-time).
  • RTEMS, Real-Time Executive for Multiprocessor Systems, licensed under GPL2 with a specific runtime exception licence from https://www.rtems.org/license. Newer versions are considering moving to even more liberal licenses (BSD).
  • Buildsupport (model transformation) - licensed under LGPLv3 (developed specifically for TASTE)
  • TASTE orchestrator (build script) - licensed under LGPLv3 (developed specifically for TASTE)

TASTE also uses the following modeling tools (see below). These tools produce intermediate models or perform analysis on these models - and as such, they do not generate any artefacts that become part of the final binaries - they are only used to "feed" the code generators. The output of the code generators - the one that actually "flies" - is governed by the licences of the tools shown in the previous section.

  • Interface, Deployment and Concurrency view editors are closed-source, developed specifically for TASTE by Ellidiss with a specific license that allows end-users to use the tools only in the context of TASTE. See $HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf inside the TASTE VM for more details.
  • Cheddar and Marzhin (Scheduling Analysis) are third-party tools, integrated into TASTE by Ellidiss - and distributed under specific TASTE conditions that allow end-users to use them only in the context of TASTE. See $HOME/tool-src/ellidiss-GUI/TASTE-linux/doc/License.pdf in TASTE VM for more details.