﻿<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>eTrice Documentation</title>

<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="css/metisMenu.min.css"/>
<link rel="stylesheet" type="text/css" href="css/font-awesome.min.css"/>
<link rel="stylesheet" type="text/css" href="css/prettify.css"/>
<link rel="stylesheet" type="text/css" href="css/custom.css"/>
<link rel="stylesheet" type="text/css" href="css/custom-common.css"/>

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->

</head>
<body>

<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" style="padding-bottom: 2px; padding-top: 4px;" href="introduction.html"><img style="height: 100%;" src="images/logo/etrice-logo-interim.png"></a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="introduction.html">Online Documentation</a></li>
<li><a href="http://www.eclipse.org/forums/eclipse.etrice">Newsgroup</a></li>
<li><a href="https://www.eclipse.org/etrice/">eTrice Home</a></li>
<li><a href="https://www.eclipse.org/etrice/download.php">Downloads</a></li>

<li><a href="https://git.eclipse.org/c/etrice/org.eclipse.etrice.git/">Git repository</a></li>

</ul>
</div><!--/.nav-collapse -->
</div>
</nav>



<div class="container">
<div class="row">
<div class="col-sm-3">
<div id="sidebar" role="navigation">
<ul class="nav metismenu" id="sidebarMenu">
<li><a href="introduction.html" aria-expanded="false">Introduction <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="introduction.html#etrice-overview" aria-expanded="false">eTrice Overview <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="introduction.html#what-is-etrice-">What is eTrice?</a></li>






<li><a href="introduction.html#reduction-of-complexity">Reduction of Complexity</a></li>






</ul>
</li>





<li><a href="introduction.html#introduction-room-language" aria-expanded="false">Introduction ROOM Language <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="introduction.html#scope-of-room">Scope of ROOM</a></li>






<li><a href="introduction.html#basic-concepts">Basic Concepts</a></li>






<li><a href="introduction.html#execution-models">Execution Models</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="tutorials.html" aria-expanded="false">Tutorials <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="tutorials.html#working-with-the-tutorials">Working with the tutorials</a></li>






<li><a href="tutorials.html#getting-started-c">Getting Started C</a></li>






<li><a href="tutorials.html#getting-started-c-">Getting Started C++</a></li>






<li><a href="tutorials.html#getting-started-java">Getting Started Java</a></li>






<li><a href="tutorials.html#tutorial-ping-pong-java-c-and-c-" aria-expanded="false">Tutorial Ping Pong Java, C and C++ <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="tutorials.html#scope">Scope</a></li>






<li><a href="tutorials.html#create-the-structure">Create the structure</a></li>






<li><a href="tutorials.html#implement-the-behavior">Implement the Behavior</a></li>






<li><a href="tutorials.html#summary">Summary</a></li>






</ul>
</li>





<li><a href="tutorials.html#troubleshooting">Troubleshooting</a></li>






</ul>
</li>





<li><a href="standalone-generators.html">Standalone Generators</a></li>






<li><a href="examples.html" aria-expanded="false">Examples <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="examples.html#the-c-examples-project" aria-expanded="false">The C examples project <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="examples.html#traffic-light-step-1">Traffic light - step 1</a></li>






<li><a href="examples.html#traffic-light-step-2">Traffic light - step 2</a></li>






<li><a href="examples.html#traffic-light-step-3">Traffic light - step 3</a></li>






<li><a href="examples.html#traffic-light-step-4">Traffic light - step 4</a></li>






<li><a href="examples.html#features">Features</a></li>






</ul>
</li>





<li><a href="examples.html#the-java-examples-project" aria-expanded="false">The Java examples project <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="examples.html#dynamic-actors-1">Dynamic Actors 1</a></li>






<li><a href="examples.html#dynamic-actors-2">Dynamic Actors 2</a></li>






<li><a href="examples.html#dynamic-actors-3">Dynamic Actors 3</a></li>






<li><a href="examples.html#dynamic-actors-4">Dynamic Actors 4</a></li>






<li><a href="examples.html#dynamic-actors-5">Dynamic Actors 5</a></li>






<li><a href="examples.html#dynamic-actors-6">Dynamic Actors 6</a></li>






<li><a href="examples.html#dynamic-actors-7">Dynamic Actors 7</a></li>






<li><a href="examples.html#dynamic-actors-8">Dynamic Actors 8</a></li>






<li><a href="examples.html#dynamic-actors-9">Dynamic Actors 9</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="room-concepts.html" aria-expanded="false">ROOM Concepts <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="room-concepts.html#actors">Actors</a></li>






<li><a href="room-concepts.html#protocols">Protocols</a></li>






<li><a href="room-concepts.html#ports">Ports</a></li>






<li><a href="room-concepts.html#dataclass">DataClass</a></li>






<li><a href="room-concepts.html#layering">Layering</a></li>






<li><a href="room-concepts.html#finite-state-machines">Finite State Machines</a></li>






</ul>
</li>





<li><a href="etrice-features.html" aria-expanded="false">eTrice Features <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#model-navigation" aria-expanded="false">Model Navigation <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#from-model-to-behavior-to-structure">From Model to Behavior to Structure</a></li>






<li><a href="etrice-features.html#model-navigation">Model Navigation</a></li>






<li><a href="etrice-features.html#navigating-behavior-diagrams">Navigating Behavior Diagrams</a></li>






<li><a href="etrice-features.html#navigating-structure-diagrams">Navigating Structure Diagrams</a></li>






</ul>
</li>





<li><a href="etrice-features.html#etrice-java-projects" aria-expanded="false">eTrice Java Projects <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#eclipse-jdt-build">Eclipse JDT Build</a></li>






<li><a href="etrice-features.html#maven-build">Maven Build</a></li>






</ul>
</li>





<li><a href="etrice-features.html#automatic-diagram-layout-with-kieler" aria-expanded="false">Automatic Diagram Layout with KIELER <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#overview">Overview</a></li>






<li><a href="etrice-features.html#performing-automatic-layout">Performing Automatic Layout</a></li>






<li><a href="etrice-features.html#layout-options">Layout Options</a></li>






<li><a href="etrice-features.html#configuring-layout-options">Configuring Layout Options</a></li>






<li><a href="etrice-features.html#special-layout-options">Special Layout Options</a></li>






<li><a href="etrice-features.html#further-references">Further References</a></li>






</ul>
</li>





<li><a href="etrice-features.html#annotations" aria-expanded="false">Annotations <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#annotation-type-definitions">Annotation Type Definitions</a></li>






<li><a href="etrice-features.html#usage-and-effect-of-the-pre-defined-annotations">Usage and Effect of the Pre-defined Annotations</a></li>






</ul>
</li>





<li><a href="etrice-features.html#enumerations">Enumerations</a></li>






<li><a href="etrice-features.html#etrice-models-and-their-relations" aria-expanded="false">eTrice Models and Their Relations <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#the-room-model">The ROOM Model</a></li>






<li><a href="etrice-features.html#the-config-model">The Config Model</a></li>






<li><a href="etrice-features.html#the-physical-model">The Physical Model</a></li>






<li><a href="etrice-features.html#the-mapping-model">The Mapping Model</a></li>






</ul>
</li>





<li><a href="etrice-features.html#interface-contracts" aria-expanded="false">Interface Contracts <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="etrice-features.html#defining-contracts">Defining Contracts</a></li>






<li><a href="etrice-features.html#contract-monitor-generation">Contract Monitor Generation</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="feature-reference.html" aria-expanded="false">Feature Reference <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#roomlanguage" aria-expanded="false">ROOMLanguage <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#configmodel">ConfigModel</a></li>






<li><a href="feature-reference.html#logicalmodel" aria-expanded="false">LogicalModel <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#actorclass">ActorClass</a></li>






<li><a href="feature-reference.html#actorref">ActorRef</a></li>






<li><a href="feature-reference.html#annotation">Annotation</a></li>






<li><a href="feature-reference.html#annotationtype">AnnotationType</a></li>






<li><a href="feature-reference.html#attribute">Attribute</a></li>






<li><a href="feature-reference.html#binding">Binding</a></li>






<li><a href="feature-reference.html#cpbranchtransition">CPBranchTransition</a></li>






<li><a href="feature-reference.html#choicepoint">ChoicePoint</a></li>






<li><a href="feature-reference.html#communicationtype">CommunicationType</a></li>






<li><a href="feature-reference.html#continuationtransition">ContinuationTransition</a></li>






<li><a href="feature-reference.html#dataclass">DataClass</a></li>






<li><a href="feature-reference.html#datatype">DataType</a></li>






<li><a href="feature-reference.html#entrypoint">EntryPoint</a></li>






<li><a href="feature-reference.html#enumeration">Enumeration</a></li>






<li><a href="feature-reference.html#executiontype">ExecutionType</a></li>






<li><a href="feature-reference.html#exitpoint">ExitPoint</a></li>






<li><a href="feature-reference.html#externalendport">ExternalEndPort</a></li>






<li><a href="feature-reference.html#externaltype">ExternalType</a></li>






<li><a href="feature-reference.html#inheritance">Inheritance</a></li>






<li><a href="feature-reference.html#initialtransition">InitialTransition</a></li>






<li><a href="feature-reference.html#internalendport">InternalEndPort</a></li>






<li><a href="feature-reference.html#layerconnection">LayerConnection</a></li>






<li><a href="feature-reference.html#logicalsystem">LogicalSystem</a></li>






<li><a href="feature-reference.html#operation">Operation</a></li>






<li><a href="feature-reference.html#port">Port</a></li>






<li><a href="feature-reference.html#primitivetype">PrimitiveType</a></li>






<li><a href="feature-reference.html#protocolclass">ProtocolClass</a></li>






<li><a href="feature-reference.html#refinedstate">RefinedState</a></li>






<li><a href="feature-reference.html#relayport">RelayPort</a></li>






<li><a href="feature-reference.html#replication">Replication</a></li>






<li><a href="feature-reference.html#sap">SAP</a></li>






<li><a href="feature-reference.html#spp">SPP</a></li>






<li><a href="feature-reference.html#serviceimplementation">ServiceImplementation</a></li>






<li><a href="feature-reference.html#simplestate">SimpleState</a></li>






<li><a href="feature-reference.html#state">State</a></li>






<li><a href="feature-reference.html#stategraphnode">StateGraphNode</a></li>






<li><a href="feature-reference.html#statemachine">StateMachine</a></li>






<li><a href="feature-reference.html#subsystemclass">SubSystemClass</a></li>






<li><a href="feature-reference.html#subsystemref">SubSystemRef</a></li>






<li><a href="feature-reference.html#trpoint">TrPoint</a></li>






<li><a href="feature-reference.html#transition">Transition</a></li>






<li><a href="feature-reference.html#transitionpoint">TransitionPoint</a></li>






<li><a href="feature-reference.html#triggeredtransition">TriggeredTransition</a></li>






</ul>
</li>





<li><a href="feature-reference.html#mappingmodel">MappingModel</a></li>






<li><a href="feature-reference.html#physicalmodel">PhysicalModel</a></li>






</ul>
</li>





<li><a href="feature-reference.html#modeleditors" aria-expanded="false">ModelEditors <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#graphicalbehavioreditor">GraphicalBehaviorEditor</a></li>






<li><a href="feature-reference.html#graphicalstructureeditor" aria-expanded="false">GraphicalStructureEditor <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#actorrefpropertydialog">ActorRefPropertyDialog</a></li>






<li><a href="feature-reference.html#portpropertydialog">PortPropertyDialog</a></li>






<li><a href="feature-reference.html#spppropertydialog">SPPPropertyDialog</a></li>






<li><a href="feature-reference.html#structureeditorpalette">StructureEditorPalette</a></li>






</ul>
</li>





<li><a href="feature-reference.html#textualroomeditor" aria-expanded="false">TextualROOMEditor <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#outlineview">OutlineView</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="feature-reference.html#codegenerators" aria-expanded="false">CodeGenerators <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#ccodegenerator" aria-expanded="false">CCodeGenerator <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="feature-reference.html#datalogging">DataLogging</a></li>






</ul>
</li>





<li><a href="feature-reference.html#cppcodegenerator">CPPCodeGenerator</a></li>






<li><a href="feature-reference.html#generationoptions">GenerationOptions</a></li>






<li><a href="feature-reference.html#javacodegenerator">JavaCodeGenerator</a></li>






<li><a href="feature-reference.html#msclogging">MSCLogging</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="Dave-Integration.html" aria-expanded="false">Dave Integration <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="Dave-Integration.html#dave-etrice-toolchain-tutorial" aria-expanded="false">DAVE-eTrice Toolchain Tutorial <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="Dave-Integration.html#introduction">Introduction</a></li>






<li><a href="Dave-Integration.html#getting-started-without-operating-system">Getting Started without Operating System</a></li>






<li><a href="Dave-Integration.html#getting-started-with-freertos">Getting Started with FreeRTOS</a></li>






</ul>
</li>





</ul>
</li>





<li><a href="ResourceRequirements.html">Resource Requirements</a></li>






<li><a href="developers-reference.html" aria-expanded="false">Developer's Reference <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="developers-reference.html#etrice-tool-developer-s-reference" aria-expanded="false">eTrice Tool Developer’s Reference <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="developers-reference.html#architecture" aria-expanded="false">Architecture <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="developers-reference.html#editor-and-generator-components">Editor and Generator Components</a></li>






<li><a href="developers-reference.html#the-abstract-finite-state-machine-concept">The Abstract Finite State Machine Concept</a></li>






<li><a href="developers-reference.html#runtimes">Runtimes</a></li>






<li><a href="developers-reference.html#unit-tests">Unit Tests</a></li>






</ul>
</li>





<li><a href="developers-reference.html#component-overview" aria-expanded="false">Component Overview <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="developers-reference.html#room-language-overview">Room Language Overview</a></li>






<li><a href="developers-reference.html#config-language-overview">Config Language Overview</a></li>






<li><a href="developers-reference.html#aggregation-layer-overview">Aggregation Layer Overview</a></li>






<li><a href="developers-reference.html#generator-overview">Generator Overview</a></li>






</ul>
</li>





</ul>
</li>





</ul>
</li>





<li><a href="release-notes.html" aria-expanded="false">Release Notes <span class="fa arrow"></span></a>
<ul class="nav" aria-expanded="false">
<li><a href="release-notes.html#2-0-0-migration">2.0.0 Migration</a></li>






</ul>
</li>





</ul>
</div>
</div>
<span class="version pull-right">version 2.x</span></p>
<div class="col-sm-9">
<h1><a href="#dave-etrice-toolchain-tutorial" name="dave-etrice-toolchain-tutorial"></a>DAVE-eTrice Toolchain Tutorial</h1>
<h2><a href="#introduction" name="introduction"></a>Introduction</h2>
<p>As you already know, eTrice is a ROOM-Tool that provides a high level modeling language for embedded systems. It is perfectly suited for event driven, real time systems. However, each embedded SW relies on an underlying HW, with components like digital I/Os, Sensors, ADCs, DACs, PWMs and so on to connect the real world. Therefore some driver SW is required to control all this HW components and to provide easy access for the higher level SW. To develop the HW-drivers as well as your application logic without changing the development environment, you need a tool chain that provides both, driver development and high level application development. For Infineon’s XMC™ ARM Cortex M0/M4 devices special support is provided to combine the DAVE™ tool for driver development with eTrice for application development. This tutorials will guide you through the first steps.</p>
<p>The tutorials relies on the XMC4700 Relax Lite Kit. As a precondition you should be familiar with DAVE™. It is very easy to adapt the tutorials to any other development board or to your own HW. </p>
<h2><a href="#getting-started-without-operating-system" name="getting-started-without-operating-system"></a>Getting Started without Operating System</h2>
<p>Within this tutorial you will perform the following steps:</p>
<ul>
  <li>create a DAVE CE™ basic model</li>
  <li>run the <em>New Set of eTrice Models</em> wizard</li>
  <li>create a simple blinky model</li>
  <li>generate, build and run the application</li>
  <li>optionally extend the blinky state machine and create a button controller to switch blinky on and off</li>
</ul>
<h3><a href="#step-1-" name="step-1-"></a>Step 1:</h3>
<p>As a starting point you should create a DAVE CE™ project for the target HW. Let’s call the project <em>BlinkyTutorial_RelaxKit4700_ST</em>, where <em>ST</em> stands for <em>Single Threaded</em>. The following APPs should be included:</p>
<ul>
  <li>SYSTIMER</li>
  <li>2 * DIGITAL_IO configured as outputs for the two LEDs.</li>
  <li>2 * DIGITAL_IO configured as inputs for the buttons.</li>
</ul>
<p>Hint: For the basic setup and to reduce the initial effort it is sufficient to create just</p>
<ul>
  <li>SYSTMIER</li>
  <li>1 * DIGITAL_IO configured as output for LED1 “LED1_P5_9”</li>
</ul>
<p>For STEP 5 and following you will need the full set of IO Pins.</p>
<p>The resulting project should look like this:</p>
<p><img src="images/400-DaveBasicProject.png" alt="image"></p>
<p>Make sure that the pins are configured correctly. It is a good idea to run it on the real HW to verify that everything is configured correctly. To setup a debug configuration see also <em>Step 4</em>.</p>
<h3><a href="#step-2-" name="step-2-"></a>Step 2:</h3>
<p>Run the *New Set of new eTrice Models" wizard.</p>
<p>To keep an adequate project structure you should create a new folder called <em>model</em>.<br><em>right click on the project -&gt; new -&gt; other</em></p>
<p><img src="images/400-DaveCreateFolder.png" alt="image"></p>
<p>Name the folder <em>model</em></p>
<p>Run the *New Set of eTrice Models" wizard.<br><em>Right click on the newly created folder -&gt; new -&gt; other</em><br>Select <em>eTrice/C/New Set of eTrice Models</em></p>
<p><img src="images/400-RunNewModelWizzard.png" alt="image"></p>
<p>Click <em>Next</em><br>Name the model <em>BlinkyTutorial</em></p>
<p>Click <em>Next</em><br>Enable the check box <em>Copy C-Runtime into project</em><br>Select <em>ST_XMC_Dave</em> as active platform.<br>Rename the eTrice entry function to <em>etStart</em>.</p>
<p><img src="images/400-SelectRuntime.png" alt="image"></p>
<p>Click <em>Finish</em></p>
<p>The resulting project should look like this:</p>
<p><img src="images/400-FirstEtriceModel.png" alt="image"></p>
<p>The following files/folders should have been created:</p>
<ul>
  <li><em>etrice_c_runtime</em></li>
  <li><em>etrice_c_modellib</em> within the <em>model</em> folder</li>
  <li><em>BlinkyTutorial.etmap</em></li>
  <li><em>BlinkyTutorial.etphys</em></li>
  <li><em>BlinkyTutorial.room</em></li>
  <li><em>gen_BlinkyTutorial.launch</em></li>
  <li><em>run_BlinkyTutorial.launch</em></li>
</ul>
<p>Now you have successfully created your first eTrice model. To complete the step you should generate C-Code out of the model.<br>Right click on <em>gen_BlinkyTutorial.launch -&gt; Run As -&gt; gen_BlinkyTutorial</em></p>
<p><img src="images/400-RunGenerator.png" alt="image"></p>
<p>Make sure that your outline view is activated. <em>Window -&gt; Show View -&gt; Outline</em>.</p>
<p>Once the code is generated you should build the application. After the first build two additional folders are created:<br>- <em>src-gen</em><br>- <em>src-gen-info</em></p>
<p>To start the model, you should call etStart from the DAVE™ generated main function.</p>
<p><img src="images/400-DaveMain.png" alt="image"></p>
<h3><a href="#step-3-" name="step-3-"></a>Step 3:</h3>
<p>Now everything is arranged to start modeling with eTrice. </p>
<p>One of the benefits of a modeling language like ROOM is, that it is very easy to build model based libraries either domain specific or for common use. Some common services are part of the eTrice distribution so that we can use it out of the box. The first application we want to create is a blinking LED, therefore we use the eTrice timing service. We just have to import the libraries.<br>Open the <em>BlinkyTutorial.room</em> and add the two import statements:</p>
<pre><code class="room customHighlighted"><span class="keyword">RoomModel</span> BlinkyTutorial {

    <span class="keyword">import</span> room.basic.types.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/Types.room"</span>

    <span class="keyword">import</span> room.basic.service.timing.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/TimingService.room"</span>

    <span class="keyword">LogicalSystem</span> BlinkyTutorial {
        <span class="keyword">SubSystemRef</span> main: MainSubSystem
    }
</code></pre>
<p>Now we can use the timing service within our application. We just need to connect the application and the service.<br>In the outline view right click the SubSystem and open the structure editor:</p>
<p><img src="images/400-OpenStructureEditorSubsystem.png" alt="image"></p>
<p>Drag and Drop an <em>ActorRef</em> into the subsystem.</p>
<p><img src="images/400-AddActorRefDragAndDrop.png" alt="image"></p>
<p>Select the ActorClass <em>ATimingService</em> and name the reference <em>timing</em>.</p>
<p>Draw a connection from <em>application</em> to <em>timing</em>.</p>
<p><img src="images/400-SubSystemWithTimingService.png" alt="image"></p>
<p>Now we can use the timing service inside our application. We will see it later on. Our application should consist of two new actors and a protocol for communication. One actor should represent the HW, the other actor should implement the blinky behavior which is in fact very simple.Creating new elements like actors or protocols are done in the .room file. </p>
<p>Open <em>BlinkyTutorial.room</em> and create a new Actor called AHWAbstraction by adding the following text:</p>
<pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> AHWAbstraction {
    <span class="keyword">Structure</span> {
        <span class="keyword">usercode1</span> <span class="string">'''
            #include "Dave.h"
        '''</span>
    }
}
</code></pre>
<p>Check the outline view to verify that the actor was created.</p>
<p>Create a new protocol class by adding the following:</p>
<pre><code class="room customHighlighted"><span class="keyword">ProtocolClass</span> POnOff {
    <span class="keyword">incoming</span> {
        <span class="keyword">Message</span> on()
        <span class="keyword">Message</span> off()
    }
    <span class="keyword">outgoing</span> { }
}
</code></pre>
<p>Check the outline view to see that the protocol was created.</p>
<p>The <em>AHWAbstarction</em> should be controlled via the <em>POnOff</em> protocol. That means, whenever we send an <em>on</em> message, the LED should be switched on, whenever we send an <em>off</em> message, the LED should be switched off. Therefore we add an <em>Interface Port</em> from type <em>POnOff</em> to the <em>AHWAbstraction</em> actor.<br>In the outline view right click on <em>AHWAbstraction -&gt; Edit Structure</em> to open the structure editor of the actor. </p>
<p><img src="images/400-OpenStructureEditor.png" alt="image"></p>
<p>Within the structure editor create a new <em>Interface Port</em></p>
<p><img src="images/400-CreateInterfacePort.png" alt="image"></p>
<p>Name the port <em>LED1</em>, the port must be from the newly created protocol type <em>POnOff</em>.</p>
<p><img src="images/400-NewInterfacePort.png" alt="image"></p>
<p>Now we need a state machine which is able to handle the defined messages and to perform the required actions.<br>Create the state machine of the <em>AHWAbstraction</em> actor:<br>Inside the structure editor, right click on the actor.<br>Select <em>Open Class Behavior</em></p>
<p><img src="images/400-OpenClassBehaviour.png" alt="image"></p>
<p>The resulting FSM should look like this:</p>
<p><img src="images/400-HWActorFSM.png" alt="image"></p>
<p>It is just one state with two transitions. Each transition carries one action to switch a digital IO. Here we have the interface to the DAVE™ generated code. The transitions will be triggered from the <em>POnOff</em> protocol.</p>
<p>The resulting textual representation should look like this:</p>
<pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> AHWAbstraction {
    <span class="keyword">Interface</span> {
        <span class="keyword">Port</span> LED1: POnOff
    }
    <span class="keyword">Structure</span> {
        <span class="keyword">usercode1</span> <span class="string">'''
            #include "Dave.h"
        '''</span>
        <span class="keyword">external</span> <span class="keyword">Port</span> LED1
    }
    <span class="keyword">Behavior</span> {
        <span class="keyword">StateMachine</span> {
            <span class="keyword">State</span> state0
            <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; state0
            <span class="keyword">Transition</span> tr0: state0 -&gt; state0 {
                <span class="keyword">triggers</span> {
                    &lt;on: LED1&gt;
                }
                <span class="keyword">action</span> <span class="string">'''
                    DIGITAL_IO_SetOutputHigh(&amp;LED1_P5_9);
                '''</span>
            }
            <span class="keyword">Transition</span> tr1: state0 -&gt; state0 {
                <span class="keyword">triggers</span> {
                    &lt;off: LED1&gt;
                }
                <span class="keyword">action</span> <span class="string">'''
                    DIGITAL_IO_SetOutputLow(&amp;LED1_P5_9);
                '''</span>
            }
        }
    }
}
</code></pre>
<p>Please notice that the <em>off</em> message switches the LED off and vice versa.</p>
<p>To implement the behavior of the <em>ABlinky</em> actor, we just need to create a new actor, add a port for communication and implement the behavior by adding a state machine with appropriate triggers and actions.<br>Create an ActorClass called <em>ABlinky</em> by adding the following text:</p>
<pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> ABlinky {
    <span class="keyword">Structure</span> {
        <span class="keyword">SAP</span> timer: PTimer
    }
}
</code></pre>
<p>Recognize that the structure contains a Service Access Point (SAP) which allows you to use the timing service.</p>
<p>Now, add an additional interface port called <em>out</em> as you did it before and make it a <em>conjugated</em> port. We need to declare the type of the interface (protocol) just once. To define the direction (in or out messages) we need one <em>normal</em> port (*AHWAbstraction*) and one <em>conjugated</em> port (*ABlinky*).</p>
<p>To define the behavior, create the following state machine:</p>
<p><img src="images/400-BlinkyFSM.png" alt="image"></p>
<p>On the initial transition the timer will be started. On the transitions between the states a message <em>on</em> or <em>off</em> will be sent via the <em>out</em> port.</p>
<p>The resulting textual representation looks like this:</p>
<pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> ABlinky {
    <span class="keyword">Interface</span> {
        <span class="keyword">conjugated</span> <span class="keyword">Port</span> ^out: POnOff
    }
    <span class="keyword">Structure</span> {
        <span class="keyword">SAP</span> timer: PTimer
        <span class="keyword">external</span> <span class="keyword">Port</span> ^<span class="keyword">out</span>
    }
    <span class="keyword">Behavior</span> {
        <span class="keyword">StateMachine</span> {
            <span class="keyword">State</span> state0
            <span class="keyword">State</span> state1
            <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; state0 {
                <span class="keyword">action</span> <span class="string">'''
                    timer.startTimer(300);
                '''</span>
            }
            <span class="keyword">Transition</span> tr0: state0 -&gt; state1 {
                <span class="keyword">triggers</span> {
                    &lt;timeout: timer&gt;
                }
                <span class="keyword">action</span> <span class="string">'''
                    out.on();
                '''</span>
            }
            <span class="keyword">Transition</span> tr1: state1 -&gt; state0 {
                <span class="keyword">triggers</span> {
                    &lt;timeout: timer&gt;
                }
                <span class="keyword">action</span> <span class="string">'''
                    out.off();
                '''</span>
            }
        }
    }
}
</code></pre>
<p>The last step is to build up the application containing the actor classes <em>ABlinky</em> and <em>AHWAbstraction</em>.<br>In the outline view right click to <em>application -&gt; Edit Structure</em><br>Add <em>ActorRef</em> blinky of ActorClass <em>ABlinky</em>. The same for the <em>AHWAbstraction</em>.<br>Draw the binding between the ports. The resulting system should look like this:</p>
<p><img src="images/400-ApplicationABlinkyHW.png" alt="image"></p>
<p>The resulting representation of the complete model should look like this:</p>
<pre><code class="room customHighlighted"><span class="keyword">RoomModel</span> BlinkyTutorial {

    <span class="keyword">import</span> room.basic.types.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/Types.room"</span>

    <span class="keyword">import</span> room.basic.service.timing.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/TimingService.room"</span>

    <span class="keyword">LogicalSystem</span> BlinkyTutorial {
        <span class="keyword">SubSystemRef</span> main: MainSubSystem
    }

    <span class="keyword">SubSystemClass</span> MainSubSystem {
        <span class="keyword">ActorRef</span> appl: Application
        <span class="keyword">LogicalThread</span> defaultThread
        <span class="keyword">LayerConnection</span> <span class="keyword">ref</span> appl <span class="keyword">satisfied_by</span> timing.timer
        <span class="keyword">ActorRef</span> timing: ATimingService
    }

    <span class="keyword">ActorClass</span> ABlinky {
        <span class="keyword">Interface</span> {
            <span class="keyword">conjugated</span> <span class="keyword">Port</span> ^out: POnOff
        }
        <span class="keyword">Structure</span> {
            <span class="keyword">SAP</span> timer: PTimer
            <span class="keyword">external</span> <span class="keyword">Port</span> ^<span class="keyword">out</span>
        }
        <span class="keyword">Behavior</span> {
            <span class="keyword">StateMachine</span> {
                <span class="keyword">State</span> state0
                <span class="keyword">State</span> state1
                <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; state0 {
                    <span class="keyword">action</span> <span class="string">'''
                        timer.startTimer(300);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr0: state0 -&gt; state1 {
                    <span class="keyword">triggers</span> {
                        &lt;timeout: timer&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        out.on();
                    '''</span>
                }
                <span class="keyword">Transition</span> tr1: state1 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;timeout: timer&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        out.off();
                    '''</span>
                }
            }
        }
    }

    <span class="keyword">ActorClass</span> AHWAbstraction {
        <span class="keyword">Interface</span> {
            <span class="keyword">Port</span> LED1: POnOff
        }
        <span class="keyword">Structure</span> {
            <span class="keyword">usercode1</span> <span class="string">'''
                #include "Dave.h"
            '''</span>
            <span class="keyword">external</span> <span class="keyword">Port</span> LED1
        }
        <span class="keyword">Behavior</span> {
            <span class="keyword">StateMachine</span> {
                <span class="keyword">State</span> state0
                <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; state0
                <span class="keyword">Transition</span> tr0: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;on: LED1&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputHigh(&amp;LED1_P5_9);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr1: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;off: LED1&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputLow(&amp;LED1_P5_9);
                    '''</span>
                }
            }
        }
    }

    <span class="keyword">ProtocolClass</span> POnOff {
        <span class="keyword">incoming</span> {
            <span class="keyword">Message</span> on()
            <span class="keyword">Message</span> off()
        }
        <span class="keyword">outgoing</span> { }
    }

    <span class="keyword">ActorClass</span> Application {
        <span class="keyword">Structure</span> {
            <span class="keyword">ActorRef</span> hw: AHWAbstraction
            <span class="keyword">ActorRef</span> blinky: ABlinky
            <span class="keyword">Binding</span> blinky.^<span class="keyword">out</span> <span class="keyword">and</span> hw.LED1
        }
    }
}
</code></pre>
<p>The model is finished know.<br>If you missed some steps in between, you also can copy the complete model to your .room file.</p>
<h3><a href="#step-4-" name="step-4-"></a>Step 4:</h3>
<p>Generate, build and run the application.</p>
<p>Generate the application as you did it in step2 (Right click on <em>gen_BlinkyTutorial.launch -&gt; Run As -&gt; gen_BlinkyTutorial</em>). Once the code is generated, you are back in your normal C-Development and you can compile and debug your code as usual. Build the generated code and download it to the target as you normally do it.</p>
<p>Right click on the project -&gt; Build Project<br>Right click on the project -&gt; Debug As -&gt; DAVE C/C++ Application</p>
<p>The LED1 should blink in a 300ms interval.</p>
<p>Congratulations, you have built you first eTrice Application on top of the Dave™ drivers!!!</p>
<p>Hint: If you start the debugger the first time (for a new project) it might be necessary to setup the debug configuration:</p>
<p>Right click on the project -&gt; Debug As -&gt; Debug Configurations…</p>
<p><img src="images/400-CreateDebugConfig.png" alt="image"></p>
<p>Select the <em>GDB Segger J_link Debugging</em> and press the <em>New</em> button to create a new debug configuration.<br><img src="images/400-SeggerDebugConfig.png" alt="image"></p>
<p>Keep all default settings and press <em>Debug</em><br><img src="images/400-SeggerDebugConfigTutorial.png" alt="image"></p>
<p>Once the debug configuration is created you can start the debugger either with:<br>Right click on the project -&gt; Debug As -&gt; DAVE C/C++ Application<br>or via the Debug Button: </p>
<p><img src="images/400-StartDebugWithIcon.png" alt="image"></p>
<h3><a href="#step-5-" name="step-5-"></a>Step 5:</h3>
<p>As further exercise you can extend the model in the following way:</p>
<ul>
  <li>add a control port to <em>ABlinky</em> from type <em>POnOff</em></li>
  <li>extend the behavior so that you can switch off and on the blink light</li>
  <li>create a button controller, that recognizes button presses</li>
  <li>do it for both buttons and LEDs</li>
  <li>put everything together to create the complete application</li>
</ul>
<p>There are many solutions. Here is one of the possible solutions:</p>
<p><img src="images/400-DualBlinkyStruct.png" alt="image"></p>
<p>and the complete textual model:</p>
<pre><code class="room customHighlighted"><span class="keyword">RoomModel</span> BlinkyTutorial {

    <span class="keyword">import</span> room.basic.types.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/Types.room"</span>

    <span class="keyword">import</span> room.basic.service.timing.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/TimingService.room"</span>

    <span class="keyword">LogicalSystem</span> BlinkyTutorial {
        <span class="keyword">SubSystemRef</span> main: MainSubSystem
    }

    <span class="keyword">SubSystemClass</span> MainSubSystem {
        <span class="keyword">ActorRef</span> appl: Application
        <span class="keyword">LogicalThread</span> defaultThread
        <span class="keyword">LayerConnection</span> <span class="keyword">ref</span> appl <span class="keyword">satisfied_by</span> timing.timer
        <span class="keyword">ActorRef</span> timing: ATimingService
    }

    <span class="keyword">ActorClass</span> ABlinky {
        <span class="keyword">Interface</span> {
            <span class="keyword">conjugated</span> <span class="keyword">Port</span> ^out: POnOff
            <span class="keyword">Port</span> ctrl: POnOff
        }
        <span class="keyword">Structure</span> {
            <span class="keyword">SAP</span> timer: PTimer
            <span class="keyword">external</span> <span class="keyword">Port</span> ^<span class="keyword">out</span>
        <span class="keyword">external</span> <span class="keyword">Port</span> ctrl
        }
        <span class="keyword">Behavior</span> {
            <span class="keyword">StateMachine</span> {
                <span class="keyword">State</span> off
                
                <span class="keyword">State</span> blinking {
                    <span class="keyword">subgraph</span> {
                        <span class="keyword">State</span> on {
                            <span class="keyword">entry</span> <span class="string">'''
                                out.on();
                            '''</span>
                        }
                        <span class="keyword">State</span> off {
                            <span class="keyword">entry</span> <span class="string">'''
                                out.off();
                            '''</span>
                        }
                        <span class="keyword">EntryPoint</span> tp0
                        <span class="keyword">Transition</span> tr0: on -&gt; off {
                            <span class="keyword">triggers</span> {
                                &lt;timeout: timer&gt;
                            }
                        }
                        <span class="keyword">Transition</span> tr1: off -&gt; on {
                            <span class="keyword">triggers</span> {
                                &lt;timeout: timer&gt;
                            }
                        }
                        <span class="keyword">Transition</span> tr2: <span class="keyword">my</span> tp0 -&gt; on {
                            <span class="keyword">action</span> <span class="string">'''
                                timer.startTimer(300);
                            '''</span>
                        }
                    }
                }
                <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; off {
                    }
                
                <span class="keyword">Transition</span> tr0: off -&gt; tp0 <span class="keyword">of</span> blinking {
                    <span class="keyword">triggers</span> {
                        &lt;on: ctrl&gt;
                    }
                }
            <span class="keyword">Transition</span> tr1: blinking -&gt; off {
                    <span class="keyword">triggers</span> {
                        &lt;off: ctrl&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        timer.kill();
                        out.off();
                    '''</span>
                }
            }
        }
    }

    <span class="keyword">ActorClass</span> AHWAbstraction {
        <span class="keyword">Interface</span> {
            <span class="keyword">Port</span> LED1: POnOff
            <span class="keyword">Port</span> LED2: POnOff
            <span class="keyword">conjugated</span> <span class="keyword">Port</span> BUTTON1: POnOff
            <span class="keyword">conjugated</span> <span class="keyword">Port</span> BUTTON2: POnOff
        }
        <span class="keyword">Structure</span> {
            <span class="keyword">usercode1</span> <span class="string">'''
                #include "Dave.h"
            '''</span>
            <span class="keyword">SAP</span> timer: PTimer
            <span class="keyword">external</span> <span class="keyword">Port</span> LED1
            <span class="keyword">external</span> <span class="keyword">Port</span> LED2
            <span class="keyword">external</span> <span class="keyword">Port</span> BUTTON1
            <span class="keyword">external</span> <span class="keyword">Port</span> BUTTON2
            <span class="keyword">Attribute</span> b1Status: int8
            <span class="keyword">Attribute</span> b2Status: int8
        }
        <span class="keyword">Behavior</span> {
            <span class="keyword">StateMachine</span> {
                <span class="keyword">State</span> state0
                <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; state0 {
                    <span class="keyword">action</span> <span class="string">'''
                        timer.startTimer(50);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr0: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;on: LED1&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputHigh(&amp;LED1_P5_9);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr1: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;off: LED1&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputLow(&amp;LED1_P5_9);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr2: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;on: LED2&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputHigh(&amp;LED2_P5_8);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr3: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;off: LED2&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        DIGITAL_IO_SetOutputLow(&amp;LED2_P5_8);
                    '''</span>
                }
                <span class="keyword">Transition</span> tr4: state0 -&gt; state0 {
                    <span class="keyword">triggers</span> {
                        &lt;timeout: timer&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        if (DIGITAL_IO_GetInput(&amp;BUTTON1_P15_13) == 0) {
                            if (b1Status == 0) {
                                // input changed
                                b1Status = 1;
                                BUTTON1.on();
                            }
                        }
                        else {
                            if (b1Status == 1) {
                                // input changed
                                b1Status = 0;
                            	BUTTON1.off();
                            }
                        }
                        
                        if (DIGITAL_IO_GetInput(&amp;BUTTON2_P15_12) == 0) {
                                if (b2Status == 0){
                                // input changed
                                b2Status = 1;
                                BUTTON2.on();
                            }
                        }
                        else {
                            if (b2Status == 1) {
                                // input changed
                                b2Status = 0;
                                BUTTON2.off();
                            }
                        }
                    '''</span>
                }
            }
        }
    }

    <span class="keyword">ProtocolClass</span> POnOff {
        <span class="keyword">incoming</span> {
            <span class="keyword">Message</span> on()
            <span class="keyword">Message</span> off()
        }
        <span class="keyword">outgoing</span> { }
    }
    <span class="keyword">ActorClass</span> AButtonController {
        <span class="keyword">Interface</span> {
            <span class="keyword">Port</span> ctrl: POnOff
            <span class="keyword">conjugated</span> <span class="keyword">Port</span> ^out: POnOff
        }
        <span class="keyword">Structure</span> {
            <span class="keyword">external</span> <span class="keyword">Port</span> ctrl
            <span class="keyword">external</span> <span class="keyword">Port</span> ^<span class="keyword">out</span>
        }
    <span class="keyword">Behavior</span> {
            <span class="keyword">StateMachine</span> {
                <span class="keyword">State</span> off
                <span class="keyword">State</span> on
                <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -&gt; off
                <span class="keyword">Transition</span> tr0: off -&gt; on {
                    <span class="keyword">triggers</span> {
                        &lt;on: ctrl&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        out.on();
                    '''</span>
                }
                <span class="keyword">Transition</span> tr1: on -&gt; off {
                    <span class="keyword">triggers</span> {
                        &lt;on: ctrl&gt;
                    }
                    <span class="keyword">action</span> <span class="string">'''
                        out.off();
                    '''</span>
                }
            }
        }
    }
    <span class="keyword">ActorClass</span> Application {
        <span class="keyword">Structure</span> {
            <span class="keyword">ActorRef</span> hw: AHWAbstraction
            <span class="keyword">ActorRef</span> blinky1: ABlinky
            <span class="keyword">Binding</span> blinky1.^<span class="keyword">out</span> <span class="keyword">and</span> hw.LED1
        <span class="keyword">Binding</span> blinky2.^<span class="keyword">out</span> <span class="keyword">and</span> hw.LED2
            <span class="keyword">ActorRef</span> blinky2: ABlinky
        <span class="keyword">Binding</span> hw.BUTTON1 <span class="keyword">and</span> button1.ctrl
            <span class="keyword">Binding</span> button2.ctrl <span class="keyword">and</span> hw.BUTTON2
            <span class="keyword">Binding</span> button2.^<span class="keyword">out</span> <span class="keyword">and</span> blinky2.ctrl
            <span class="keyword">Binding</span> blinky1.ctrl <span class="keyword">and</span> button1.^<span class="keyword">out</span>
            <span class="keyword">ActorRef</span> button1: AButtonController
            <span class="keyword">ActorRef</span> button2: AButtonController
        }
    }

}
</code></pre>
<p>In the tutorial we used the Systimer APP as timing base for the model. It is also possible to run the model without the Systimer APP. Please open <em>etrice-c-runtime/src/platforms/ST_XMC_Dave/etPlatform.h</em>. To work without Systimer APP you just need to undef <em>ET_USE_DAVE_SYSTIMER_APP</em>. In this case you have to remove the Systimer APP from the Dave™ model.</p>
<h2><a href="#getting-started-with-freertos" name="getting-started-with-freertos"></a>Getting Started with FreeRTOS</h2>
<p>To start with an operating system the steps are almost the same.</p>
<ul>
  <li>create the Dave™ project and add the FreeRTOS APP and all other required components</li>
  <li>run the "New Set of eTrice models* wizard and select the appropriate runtime library</li>
  <li>model your application (or make a copy from the <em>ST</em>-Tutorial)</li>
  <li>adapt the thread deployment to your needs</li>
</ul>
<h3><a href="#step-1-" name="step-1-"></a>Step 1:</h3>
<p>Create the Dave™ project and add the necessary components. For the <em>BlinkyTutorial</em> we need again two LEDs, two buttons and the FreeRTOS APP.</p>
<p><img src="images/500-DaveProjectFreeRTOS.png" alt="image"></p>
<p>Configure the FreeRTOS APP. Set the Tick rate to 1000.<br><img src="images/500-FreeRtosConfig1.png" alt="image"></p>
<p>Increase the heap size to 8192 bytes and enable <em>Use tick hook</em><br><img src="images/500-FreeRtosConfig2.png" alt="image"></p>
<p>Start the Dave™ code generator, compile and debug the application. Make sure that the Dave™ settings are complete.<br>Hint: The <em>vApplicationTickHook</em> is implemented in the eTrice runtime system. For this test you need to stub this function. </p>
<h3><a href="#step-2-" name="step-2-"></a>Step 2:</h3>
<p>Create a new folder called <em>model</em>, right click on the folder <em>New -&gt; Other</em> select <em>Other/eTrice/C/New Set of eTrice Models</em></p>
<p>Name the model <em>BlinkyTutorial</em>, enable <em>Copy C-runtime into project</em>, select <em>MT_XMC_Dave_FreeRTOS</em> and rename main to <em>etStart</em>.</p>
<p><img src="images/500-NewModelWizzardFreeRTOS.png" alt="image"></p>
<p>Click <em>Finish</em></p>
<p>Run the code generator as you did it in the ST-Tutorial. Compile your project.<br>Hint: Remove the <em>vApplicationTickHook</em> stub from step 1.</p>
<p>Open <em>main.c</em> and call <em>etStart</em> as you did it in the ST-Tutorial.</p>
<h3><a href="#step-3-" name="step-3-"></a>Step 3:</h3>
<p>From now on you can create your model or you can copy the <em>BlinkyTutorial.room</em> file from the ST-Tutorial to the new project.</p>
<p>Generate the code, compile and debug.</p>
<h3><a href="#step-4-" name="step-4-"></a>Step 4:</h3>
<p>In the ST-Tutorial you have created an application that runs without operating system. That means, everything runs in a single main loop. Now we have an underlying preemtive operating system and we can deploy SW-Components to different threads. With eTrice 3 simple steps are necessary:</p>
<ul>
  <li>create physical threads</li>
  <li>create logical threads and map actors to logical threads</li>
  <li>map logical threads to physical threads</li>
</ul>
<p>Physical thread creation must be done in <em>BlinkyTutorial.etphys</em>. Open the file, create 2 additional physical threads:</p>
<pre><code class="etphys customHighlighted"><span class="keyword">PhysicalModel</span> BlinkyTutorial {

    <span class="keyword">PhysicalSystem</span> PhysSys1 {
        <span class="keyword">NodeRef</span> nodeRef1 : NodeClass1
    }

    <span class="keyword">NodeClass</span> NodeClass1 {
        <span class="keyword">runtime</span> = RuntimeClass1
        <span class="keyword">priomin</span> = -10
        <span class="keyword">priomax</span> = 10
        <span class="keyword">DefaultThread</span> PhysicalThread1 {
            <span class="keyword">execmode</span> = <span class="keyword">mixed</span>
            <span class="keyword">interval</span> = 100ms
            <span class="keyword">prio</span> = 2
            <span class="keyword">stacksize</span> = 128
            <span class="keyword">msgblocksize</span> = 32
            <span class="keyword">msgpoolsize</span> = 10
        }
        <span class="keyword">Thread</span> HighPrioThread {
            <span class="keyword">execmode</span> = <span class="keyword">mixed</span>
            <span class="keyword">interval</span> = 10ms
            <span class="keyword">prio</span> = 3
            <span class="keyword">stacksize</span> = 128
            <span class="keyword">msgblocksize</span> = 32
            <span class="keyword">msgpoolsize</span> = 10
        }
        
        <span class="keyword">Thread</span> LowPrioThread {
            <span class="keyword">execmode</span> = <span class="keyword">mixed</span>
            <span class="keyword">interval</span> = 200ms
            <span class="keyword">prio</span> = 3
            <span class="keyword">stacksize</span> = 128
            <span class="keyword">msgblocksize</span> = 32
            <span class="keyword">msgpoolsize</span> = 10
        }
    }

    <span class="keyword">RuntimeClass</span> RuntimeClass1 {
        <span class="keyword">model</span> = <span class="keyword">multiThreaded</span>
    }
}
</code></pre>
<p>Adapt priorities and stack sizes to your needs. Keep in mind to reserve memory in the FREERTOS APP configuration.</p>
<p>Logical thread creation must be done in the logical model <em>BlinkyTutorial.room</em>. Open the file and add two threads and map actor instances to the newly created threads.</p>
<pre><code class="room customHighlighted"><span class="keyword">RoomModel</span> BlinkyTutorial {

    <span class="keyword">import</span> room.basic.types.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/Types.room"</span>

    <span class="keyword">import</span> room.basic.service.timing.* <span class="keyword">from</span> <span class="string">"etrice_c_modellib/TimingService.room"</span>

    <span class="keyword">LogicalSystem</span> BlinkyTutorial {
        <span class="keyword">SubSystemRef</span> main: MainSubSystem
    }

    <span class="keyword">SubSystemClass</span> MainSubSystem {
        <span class="keyword">ActorRef</span> appl: Application
        <span class="keyword">LogicalThread</span> defaultThread
        <span class="keyword">LogicalThread</span> highPrioThread
        <span class="keyword">LogicalThread</span> lowPrioThread
        <span class="keyword">LayerConnection</span> <span class="keyword">ref</span> appl <span class="keyword">satisfied_by</span> timing.timer
        <span class="keyword">ActorRef</span> timing: ATimingService
        <span class="keyword">ActorInstanceMapping</span> timing -&gt; highPrioThread
        <span class="keyword">ActorInstanceMapping</span> appl/blinky1-&gt;lowPrioThread
        <span class="keyword">ActorInstanceMapping</span> appl/button1-&gt;lowPrioThread
    }
</code></pre>
<p>We created three logical threads and deployed the timing service to the <em>highPrioThread</em>, <em>blinky1</em> and <em>button1</em> to the <em>lowPrioThread</em>. All other actors are automatically deployed to the default thread.<br>Please recognize that you deploy actor instances and not actor classes.</p>
<p>The last step is the mapping of the logical threads to physical threads. Open <em>BlinkyTutorial.etmap</em> and do your mapping:</p>
<pre><code class="etmap customHighlighted"><span class="keyword">MappingModel</span> BlinkyTutorial {
	<span class="keyword">import</span> BlinkyTutorial.* <span class="keyword">from</span> <span class="string">"BlinkyTutorial.room"</span>
	<span class="keyword">import</span> BlinkyTutorial.* <span class="keyword">from</span> <span class="string">"BlinkyTutorial.etphys"</span>
	<span class="keyword">Mapping</span> BlinkyTutorial -&gt; PhysSys1 {
		<span class="keyword">SubSystemMapping</span> main -&gt; nodeRef1 {
			<span class="keyword">ThreadMapping</span> defaultThread -&gt; PhysicalThread1
			<span class="keyword">ThreadMapping</span> highPrioThread -&gt; HighPrioThread
			<span class="keyword">ThreadMapping</span> lowPrioThread -&gt; LowPrioThread
		}
	}
}
</code></pre>
<p>Generate your code, compile and debug the application.<br>Have fun.</p>
<hr>
<p><a href="#navbar">back to top</a> <span class="version pull-right">version 2.x</span></p>
</div>
</div>
</div>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
<script src="js/metisMenu.min.js"></script>
<script src="js/prettify.js"></script>
<script src="js/custom.js"></script>
</body>
</html>
