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.
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).
- 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
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:
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.
TASTE also comes with two built-in (free) SDL editors that allow graphical description of state machines, and automatic code generation:
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.
Supported architectures and targets
TASTE is able to generate systems from a high-level abstraction. It can generate applications for the following architectures:
- x86 with the following operating systems: Linux, Mac OS X, FreeBSD, RTEMS, and Windows.
- ARM with the GNAT Runtime. Successfully tested on STM32F405, F407, F429 boards, and the Crazyflie quadcopter.
- SPARC (LEON) with RTEMS and Open Ravenscar Kernel (ORK+). For LEON/RTEMS, TASTE can be interfaced with the RASTA board which provides interfaces for serial, Spacewire and 1553 buses.
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
- Ocarina — AADL parser and code generator, http://www.openaadl.org — is licensed under the GPLv3 plus runtime exception
- 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
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.
- 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 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.