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 RTEMS and Linux (successfully tested on Maemo and DSLinux).
- 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:
- Ocarina (AADL parser and code generator) has a GPL license, but the runtime uses the Runtime Exception license See here
- ASN1Scc and DMT (ASN.1 tools) are using GPL with Runtime exception
- OpenGEODE (SDL editor) is LGPL (no runtime)
- Interface, Deployment and Concurrency view editors are closed-source
- SDL FSM Editor is closed source
- RTEMS is GPL with runtime exceptions
- Buildsupport (model transformation) is LGPL
- Data Modelling tools are LGPL
- Cheddar and Marzhin (Scheduling Analysis) are distributed under specific TASTE conditions