Why


The ADAS/AD challenge
Learn about the challenges of developing safe ADAS/AD vehicle functions


The AD Cycle - How it works
Learn about the AD Cycle works for efficient ADAS/AD development


Benefits of ETAS Deterministic Middleware Solution
See why the worlds top automotive OEMs choose us

Solution concepts


System representation concepts
Fundamental concepts to construct ADAS / AD systems


YAAA Modeling Concepts and Workflow
YAML-based concepts and workflows to model ADAS / AD systems


Deterministic Recompute and Virtual Drives
The 🔑 to development efficiency


Scheduling Mechanisms in ETAS DMS
Achieving optimal compromises between latency and predictability

Basics


Determinism
Gain deeper understanding on determinism in embedded real-time systems


Differences of μC and μP-based embedded systems
Why achieving deterministic behavior μP-based embedded systems is a challenge


Glossary
Understand the terms and abbreviations used in ETAS Deterministic Middleware Solution

Products


ETAS DMS Software Development Kit
Design, develop, build, debug and test ADAS/AD applications

ETAS DMS Middleware & Runtime Libraries
Safety-certified middleware and runtime libraries for series production

For whom


Software Architects
Architecture-as-code. Git-based collaboration. Auto-generated graphics.


Feature Developers
Reduced development complexity. Fast debugging with real vehicle data.

Services


Trainings
Get up to speed on developing with ETAS Deterministic Middleware Solution through our expert trainings


Consultancy
Want to know how to best make use of ETAS Deterministic Middleware Solution for your ADAS/AD platform or project?


Proof of Concept (PoC)
See one of your ADAS/AD vehicle functions developed with ETAS Deterministic Middleware Solution


Custom Project
Have a special need or require an extension to ETAS Deterministic Middleware Solution?

Support


FAQs
Get answers to frequently asked questions about ETAS Deterministic Middleware Solution


Contact
Get in touch with an expert to obtain support

Infos and news about ETAS Deterministic Middleware Solution


Blog
Get the latest news about ETAS Deterministic Middleware Solution


Newsletter
Get the latest news about ETAS Deterministic Middleware Solution delivered to your email inbox


Whitepapers
Read in-depth information, analysis, and insights from our experts

YAAA Code Generator (YAAAC)

Generate code and artifacts from your ADAS / AD system model

The YAAA Code Generator (YAAAC) is a command line tool to generate all middleware related source code and configuration files which are required to build and deploy a YAAA application described by the YAAA model and the functional user code. The generated files are dependent on the selected middleware type/middleware version and include in particular for the CARMA middleware the following code artifacts:

  • Proxy and skeleton header files required for the publish subscribe communication mechanism
  • Main files for the modeled activities, ECU local scheduling components, and inter ECU communication gateways
  • Manifest files and startup scripts for the runtime configuration

The generated source code files and the functional user code are then compiled and linked together for a selected target architecture resulting in suitable executables ready to be deployed to and executed on the target hardware. An overview of the YAAAC workflow is depicted in the following image:

Besides code generation, YAAAC is also used to make the internal representation of the loaded YAAA model accessible to other external tools either by exporting the model to a text based representation or by providing dynamic access to the model via a Python API. In both cases, an external tool can access the complete model content such as the described software architecture, hardware architecture, or the deployment information. One example of an external tool consuming the model information via text based export is YAAA-Vis, which is used to generate a graphical representation of the software as well the hardware architecture, either as static SVG image or as interactive HTML page.

YAAAC is developed in Python technology and works similar to a compiler with a separation of the functionality into front end and back end . At the front end part, it loads and parses the YAAA model represented by a set of YAML files describing the architectural components of a YAAA application as described in the YAAA Language section. It performs model validation and preprocessing steps and creates an intermediate representation of the YAAA model, which is then consumed by the back end part for further processing. The back end part is organized by the help of a plugin interface to conveniently handle code generation for different middleware types/middleware versions and to allow users to access the internal representation via a defined API to implement user specific functionality.