| <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> |
| <channel> |
| <title>Application Platform Project for MultiCore (APP4MC)</title> |
| <link>https://www.eclipse.org/app4mc/index.xml</link> |
| <description>Recent content on Application Platform Project for MultiCore (APP4MC)</description> |
| <generator>Hugo -- gohugo.io</generator> |
| <language>en-us</language> |
| <lastBuildDate>Wed, 16 Sep 2015 11:09:06 +0200</lastBuildDate> |
| <atom:link href="https://www.eclipse.org/app4mc/index.xml" rel="self" type="application/rss+xml" /> |
| |
| <item> |
| <title>History</title> |
| <link>https://www.eclipse.org/app4mc/history/</link> |
| <pubDate>Wed, 16 Sep 2015 11:09:06 +0200</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/history/</guid> |
| <description> |
| |
| <hr /> |
| |
| <h3 id="amalthea">AMALTHEA</h3> |
| |
| <hr /> |
| |
| <p><a href="https://itea3.org/project/amalthea.html">AMALTHEA</a> was a ITEA 2 funded European project |
| that developed an open and expandable tool platform for automotive embedded-system engineering |
| based on model-driven methodology. |
| Specific features include support for multi-core systems combined with AUTOSAR compatibility |
| and product-line engineering. |
| The resulting tool platform is distributed under an Eclipse public license.</p> |
| |
| <dl class="dl-horizontal"> |
| <dt>Period</dt> |
| <dd>Jul 2011 - Apr 2014</dd> |
| <dt>Call</dt> |
| <dd>ITEA 2 Call 4</dd> |
| <dt>Challenge</dt> |
| <dd><a href="https://itea3.org/challenge/engineering.html" title="View challenge Engineering" class="">Engineering</a></dd> |
| <dt>Website</dt> |
| <dd><a title="http://www.amalthea-project.org/" href="http://http://www.amalthea-project.org/">http://www.amalthea-project.org/</a></dd> |
| <dt>Partners</dt> |
| <dd>15</dd> |
| <dt>Effort</dt> |
| <dd>58.39 <abbr title="Person Year">PY</abbr> </dd> |
| <dt>Countries</dt> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/fin.png" width="15"> <a href="https://itea3.org/country/finland.html">Finland</a></dd> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/deu.png" width="15"> <a href="https://itea3.org/country/germany.html">Germany</a></dd> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/tur.png" width="15"> <a href="https://itea3.org/country/turkey.html" >Turkey</a></dd> |
| </dl> |
| |
| <hr /> |
| |
| <h3 id="amalthea4public">AMALTHEA4public</h3> |
| |
| <hr /> |
| |
| <p><a href="https://itea3.org/project/amalthea4public.html">AMALTHEA4public</a> is a second ITEA 2 funded European project. |
| It has the goal to integrate the results of various publicly funded projects with new developments. |
| The intention is to position the open-source tool framework as a de-facto standard for future |
| software engineering design flows for automotive and other embedded systems.</p> |
| |
| <dl class="dl-horizontal"> |
| <dt>Period</dt> |
| <dd>Sep 2014 - Aug 2017</dd> |
| <dt>Call</dt> |
| <dd>ITEA 2 Call 8</dd> |
| <dt>Challenge</dt> |
| <dd><a href="https://itea3.org/challenge/engineering.html" title="View challenge Engineering" class="">Engineering</a></dd> |
| <dt>Website</dt> |
| <dd><a title="http://www.amalthea-project.org/" href="http://http://www.amalthea-project.org/">http://www.amalthea-project.org/</a></dd> |
| <dt>Partners</dt> |
| <dd>20</dd> |
| <dt>Effort</dt> |
| <dd>80.90 <abbr title="Person Year">PY</abbr> </dd> |
| <dt>Countries</dt> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/deu.png" width="15"> <a href="https://itea3.org/country/germany.html">Germany</a></dd> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/esp.png" width="15"> <a href="https://itea3.org/country/spain.html" >Spain</a></dd> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/swe.png" width="15"> <a href="https://itea3.org/country/sweden.html" >Sweden</a></dd> |
| <dd><img src="https://www.eclipse.org/app4mc/images/history/tur.png" width="15"> <a href="https://itea3.org/country/turkey.html" >Turkey</a></dd> |
| </dl> |
| </description> |
| </item> |
| |
| <item> |
| <title>Downloads</title> |
| <link>https://www.eclipse.org/app4mc/downloads/</link> |
| <pubDate>Mon, 14 Sep 2015 16:35:03 +0200</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/downloads/</guid> |
| <description> |
| |
| <hr /> |
| |
| <h3 id="current-release-0-8-0-2017-04-28">Current Release (0.8.0 - 2017-04-28)</h3> |
| |
| <hr /> |
| |
| <h5 id="products">Products</h5> |
| |
| <ul> |
| <li><p>APP4MC Platform 0.8.0 for <strong>Linux (64 Bit)</strong> - <a href="http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.8.0/org.eclipse.app4mc.platform-0.8.0-20170428-125334-linux.gtk.x86_64.zip">Zip-archive</a> (316 MB)</p></li> |
| |
| <li><p>APP4MC Platform 0.8.0 for <strong>OSX (64 Bit)</strong> - <a href="http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.8.0/org.eclipse.app4mc.platform-0.8.0-20170428-125334-macosx.cocoa.x86_64.zip">Zip-archive</a> (316 MB)</p></li> |
| |
| <li><p>APP4MC Platform 0.8.0 for <strong>Windows (32 Bit)</strong> - <a href="http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.8.0/org.eclipse.app4mc.platform-0.8.0-20170428-125334-win32.win32.x86.zip">Zip-archive</a> (317 MB)</p></li> |
| |
| <li><p>APP4MC Platform 0.8.0 for <strong>Windows (64 Bit)</strong> - <a href="http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.8.0/org.eclipse.app4mc.platform-0.8.0-20170428-125334-win32.win32.x86_64.zip">Zip-archive</a> (317 MB)</p></li> |
| </ul> |
| |
| <h5 id="update-site">Update Site</h5> |
| |
| <ul> |
| <li><p>direct link: <a href="http://download.eclipse.org/app4mc/updatesites/releases/0.8.0/">http://download.eclipse.org/app4mc/updatesites/releases/0.8.0/</a></p></li> |
| |
| <li><p>for offline installation: <a href="http://www.eclipse.org/downloads/download.php?file=/app4mc/products/releases/0.8.0/org.eclipse.app4mc.p2repo-0.8.0-201704281218.zip">Zip-archive of APP4MC 0.8.0 p2 repository</a></p></li> |
| </ul> |
| |
| <hr /> |
| |
| <p><em>For older versions please refer to:</em></p> |
| |
| <ul> |
| <li><a href="https://projects.eclipse.org/projects/technology.app4mc/downloads">Eclipse APP4MC project page</a></li> |
| <li><a href="http://amalthea-project.org/index.php/downloads">AMALTHEA/AMALTHEA4public project page</a></li> |
| </ul> |
| </description> |
| </item> |
| |
| <item> |
| <title>Visit APP4MC/AMALTHEA4public at Digital Innovation Forum in Amsterdam</title> |
| <link>https://www.eclipse.org/app4mc/news/2017-05-10_DigitalInnovationForum_2017/</link> |
| <pubDate>Mon, 08 May 2017 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2017-05-10_DigitalInnovationForum_2017/</guid> |
| <description><p>On May, the 10 - 11th, APP4MC will be present at the exhibition of the Digital Innovation Forum in Amsterdam. We&rsquo;ll present our latest platform developments and prototyps as well as some practitcal demonstrations developed with the APP4MC platform. |
| You can visit us at booth 8 on the exhibition floor |
| <a href="https://dif2017.org/exhibition.html">Digital Innovation Forum</a>.</p> |
| |
| <p></p> |
| |
| <p>Demonstrators:</p> |
| |
| <ul> |
| <li><p>SW distribution based on the Polarsys Rover chasis: (<a href="https://wiki.eclipse.org/APP4MC/Rover">https://wiki.eclipse.org/APP4MC/Rover</a>)</p></li> |
| |
| <li><p>EBEAS - Emergency Braking &amp; Evasion Assistance System: |
| Traceability throughout the engineering phases shown with an open source ADAS example</p></li> |
| </ul> |
| |
| <p><img src="https://www.eclipse.org/app4mc/images/news/EBEAS_Designflow_small.png" title="EBEAS Overview" class="img-responsive"></p></description> |
| </item> |
| |
| <item> |
| <title>APP4MC - Release 0.8.0 published</title> |
| <link>https://www.eclipse.org/app4mc/news/2017-04-28_release_0.8.0/</link> |
| <pubDate>Fri, 28 Apr 2017 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2017-04-28_release_0.8.0/</guid> |
| <description><p>We released a new version of APP4MC with a couple of new features and improvements.</p> |
| |
| <p></p> |
| |
| <p><strong>Extract of APP4MC 0.8.0</strong></p> |
| |
| <p>General</p> |
| |
| <pre><code>Model changes (mainly to simplify handling) |
| Improved tooling: model utilities |
| New UI components: Multicore Wizard, Task-Visualizer (draft version) |
| </code></pre> |
| |
| <p>Model handling</p> |
| |
| <pre><code>Model migration support (0.7.2 -&gt; 0.8.0) |
| </code></pre> |
| |
| <p>Model changes / Improvements</p> |
| |
| <pre><code>Simplified model handling: Mapping Model, Modes, Time |
| New classifiers to annotate Core and Memory |
| Reworked Property Constraints |
| Extended OS Overheads |
| </code></pre> |
| |
| <p>For details see <a href="https://projects.eclipse.org/projects/technology.app4mc/releases/0.8.0/bugs">Release 0.8.0 issues</a> |
| * Visit the <a href="http://projects.eclipse.org/projects/technology.app4mc/downloads">APP4MC download page</a></p></description> |
| </item> |
| |
| <item> |
| <title>Visit APP4MC at DATE or Parallel conferences</title> |
| <link>https://www.eclipse.org/app4mc/news/2017-03-29_conferences_2017/</link> |
| <pubDate>Wed, 29 Mar 2017 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2017-03-29_conferences_2017/</guid> |
| <description><p>On March, the 30th, the talk &lsquo;On Reducing Busy Waiting in AUTOSAR via Task-Release-Delta-based Runnable Reordering&rsquo; (2pm) presents analyses regarding resource management based upon APP4MC at the <a href="https://www.date-conference.com/conference/session/11.5">Design, Automation and Test Conference and Exhibition (DATE)</a>.</p> |
| |
| <p>Furthermore, on Friday, March the 31st 10:40am, you can learn how to use APP4MC to analyize and optimize embedded multi-core systems and their performance at <a href="https://www.parallelcon.de/veranstaltung-5701-performanceanalyse-und--optimierung-von-embedded-multicore-systemen.html?id=5701">parallel2017</a>.</p> |
| |
| <p></p> |
| |
| <p><strong>Abstract DATE</strong></p> |
| |
| <p>Below, please find the talk&rsquo;s corresponding paper abstract for the DATE conference.</p> |
| |
| <p>The increasing amount of innovative software technologies in the automotive domain comes with challenges regarding inevitable distributed multi-core and many-core methodologies. Approaches for general purpose solutions have been studied over decades but do not completely meet the specific constraints (e.g. timing, safety, reliability, affinity, etc.) for AUTOSAR compliant applications. AUTOSAR utilizes a spinlock mechanism in combination with the priority ceiling protocol in order to provide mutually exclusive access to shared resources. The essential disadvantages of spinlocks are unpredictable task response times on the one hand and wasted computation time caused by busy waiting periods on the other hand. In this paper, we propose a concept of task-release-delta-based runnable reordering for the purpose of sequentializing parallel accesses to shared resources, resulting in reduced task response times, improved timing predictability, and increased parallel efficiency respectively. To achieve this, runnables that represent smallest executable program parts in AUTOSAR are reordered based on precedence constraints. Our experiments among industrial use cases show that task response times can be reduced by up to 18,2%.</p> |
| |
| <p><strong>Abstract parallel</strong></p> |
| |
| <p>Based on the APP4MC Eclipse platform, we present the steps required in the development process to make the best use of Multicore controller&rsquo;s resources. Depending on the development status and the need for analyses, different levels of detail are needed to make targeted evaluations. Examples show which data is required at which development process and what tools can be utilized to extract this data from different sources. The analyzes range from forecast generation in early development phases to the detailed distribution and optimization of the software artifacts to existing hardware.</p></description> |
| </item> |
| |
| <item> |
| <title>APP4MC - Release 0.7.2 published</title> |
| <link>https://www.eclipse.org/app4mc/news/2017-01-31_release_0.7.2/</link> |
| <pubDate>Tue, 31 Jan 2017 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2017-01-31_release_0.7.2/</guid> |
| <description><p>The 1st official release of APP4MC is published. All IP checks are finally done and the official release review successfully passed. |
| We implemented some new features and enhancements according to project and user given requirements. |
| Further information and entire list of changes can be found in the APP4MC online help <a href="https://www.eclipse.org/app4mc/documentation/">https://www.eclipse.org/app4mc/documentation/</a> or after platform installation</p> |
| |
| <p></p> |
| |
| <p><strong>Extract of APP4MC 0.7.2</strong></p> |
| |
| <p>Model handling</p> |
| |
| <pre><code>Model migration support (0.7.1 -&gt; 0.7.2) |
| Improved back references |
| </code></pre> |
| |
| <p>Model changes</p> |
| |
| <pre><code>New core-specific runtimes (instructions) for runnables |
| New model elements for streaming communication (Channels)* |
| New Transmission Policy for communication (e.g. label accesses) |
| New Event-based Stimulus |
| New Data Consistency needs |
| New Counters for InterProcessActivation and EventStimulus |
| Harmonized model elements to describe probability |
| Storage of common elements (e.g. tags) in one central location |
| </code></pre> |
| |
| <p>Bug fixes / Improvements</p> |
| |
| <pre><code>Model migration (ISR call graph, Section names, cross document references) |
| Back references (Memory -&gt; Mapping, Scheduler -&gt; CoreAllocation) |
| </code></pre> |
| |
| <p>Documentation</p> |
| |
| <pre><code>New model elements: Physical memory sections, Channels |
| New examples |
| </code></pre> |
| |
| <ul> |
| <li>= Experimental feature (first modeling attempt that may change in future versions).</li> |
| </ul> |
| |
| <p>For details see Release 0.7.2 issues |
| * Visit the <a href="http://projects.eclipse.org/projects/technology.app4mc/downloads">APP4MC download page</a></p></description> |
| </item> |
| |
| <item> |
| <title>APP4MC - milestone 0.7.1 published</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-11-04_milestone_release_0.7.1/</link> |
| <pubDate>Fri, 04 Nov 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-11-04_milestone_release_0.7.1/</guid> |
| <description><p>A new milestone of APP4MC is published. There are new features and enhancements implemented according to project and user given requirements. |
| Further information and entire list of changes can be found in the APP4MC help (after installation).</p> |
| |
| <p></p> |
| |
| <p><strong>Extract of APP4MC 0.7.1</strong></p> |
| |
| <p>Model handling</p> |
| |
| <ul> |
| <li>Model migration support (0.7.0 -&gt; 0.7.1)</li> |
| <li>Improved update of opposite references</li> |
| <li>Storage of default values is enabled by default</li> |
| <li>New check based model validations (performance, Timing-Architects conformance,..)</li> |
| </ul> |
| |
| <p>Model changes</p> |
| |
| <ul> |
| <li>New distribution &ldquo;Beta Distribution&rdquo;</li> |
| <li>New stimuli type &ldquo;Synthetic&rdquo; (to &ldquo;replay&rdquo; activations from a hardware trace)</li> |
| <li>New DataStabilityGroup</li> |
| <li>Introduced SamplingType as new attribute for Deviation</li> |
| <li>Introduced physical memory sections (PhysicalSectionConstraint, PhysicalSectionMapping)</li> |
| <li>Reworked AffinityConstraints (removed Scheduler constraints, added Data constraints)</li> |
| <li>Reworked Event / Event-Chain Constraints</li> |
| <li>Reworked RunnableSequencingConstraints</li> |
| <li>New types for DataSizes and DataRates</li> |
| </ul> |
| |
| <p>To find out more:</p> |
| |
| <ul> |
| <li><p>View Bugzilla list |
| (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=App4mc&amp;target_milestone=0.7.1">https://bugs.eclipse.org/bugs/buglist.cgi?product=App4mc&amp;target_milestone=0.7.1</a>)</p></li> |
| |
| <li><p>Visit the <a href="http://projects.eclipse.org/projects/technology.app4mc/downloads">APP4MC download page</a></p></li> |
| </ul></description> |
| </item> |
| |
| <item> |
| <title>Visit APP4MC at EclipseCon Europe 2016</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-10-17_ECE_2016/</link> |
| <pubDate>Mon, 17 Oct 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-10-17_ECE_2016/</guid> |
| <description><p>Learn more about APP4MC and see it in action at <a href="https://eclipsecon.org/europe2016/">EclipseCon Europe 2016</a>. Explore APP4MC through a demo of a radio-controlled car at the <a href="https://www.eclipsecon.org/europe2016/playground">IoT Playground</a> on Wednesday. Start the week by meeting members of the project team at the |
| <a href="https://wiki.eclipse.org/Eclipse_Unconference_Europe_2016#Unconference_Agenda">Unconference</a>.</p> |
| |
| <p></p> |
| |
| <p><strong>Unconference</strong></p> |
| |
| <p>The APP4MC project team will be participating at this year&rsquo;s <a href="https://wiki.eclipse.org/Eclipse_Unconference_Europe_2016#Unconference_Agenda">Unconference</a> as part of a meeting of two new Working Groups in the automotive domain, OpenMDM and OpenPASS.</p> |
| |
| <p><strong>APP4MC in the IoT Playground</strong></p> |
| |
| <p>Drop by the <a href="https://www.eclipsecon.org/europe2016/playground">IoT Playground</a> on Wednesday to explore the potential of the APP4MC platform when used to control a radio-controlled car. Implemented features include visual traffic cone detection and ultrasonic sensor-based obstacle detection. The platform creates models with various configurations and timing behaviors that can be observed and investigated, as well as selected and combined into different features of the car.</p></description> |
| </item> |
| |
| <item> |
| <title>AMALTHEA4public - 2nd annual review passed</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-09-28_itea-review/</link> |
| <pubDate>Wed, 28 Sep 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-09-28_itea-review/</guid> |
| <description><p>The 2nd annual project review held in Bilbao is passed. |
| The project itself presented the work of the last year to show the outcome and usage of the AMALTHEA data model and the APP4MC platform.</p> |
| |
| <p></p> |
| |
| <p><strong>AMALTHEA4public</strong></p> |
| |
| <p>Overall the results and feedback of the reviewers were positive. The expectation for the last period of the project is the broader usage and an increasing involvement of outside partners.</p> |
| |
| <p>To find out more:</p> |
| |
| <ul> |
| <li>Visit the <a href="https://itea3.org/project/amalthea4public.html">ITEA project page</a></li> |
| </ul></description> |
| </item> |
| |
| <item> |
| <title>Capra Project Created</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-08-05_capra_project_created/</link> |
| <pubDate>Thu, 04 Aug 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-08-05_capra_project_created/</guid> |
| <description><p>Capra, the dedicated traceability management tool is now an official Eclipse EMF project. It allows the creation, management, visualisation, and analysis of trace links within Eclipse. Eclipse Capra is also one of the results of the Amalthea4public project and shares close ties with Eclipse APP4MC.</p> |
| |
| <p></p> |
| |
| <p><strong>About Capra</strong></p> |
| |
| <p>Capra is a dedicated traceability management tool that allows the creation, management, visualisation, and analysis of trace links within Eclipse. Trace links can be created between arbitrary artefacts, including all EMF model elements, all types of source code files supported by the Eclipse Platform through specialised development tools, tickets and bugs managed by Eclipse Mylyn, and all other artefacts for which an appropriate wrapper is provided. Capra is highly configurable and allows users to create their own traceability meta-model.</p> |
| |
| <p>To find out more:</p> |
| |
| <ul> |
| <li>Visit the <a href="https://projects.eclipse.org/projects/modeling.capra">Capra project page</a></li> |
| <li>Read the <a href="https://projects.eclipse.org/projects/modeling.capra/reviews/creation-review">Capra Creation Review</a></li> |
| </ul> |
| |
| <p>Stay tuned for more over the coming weeks!</p></description> |
| </item> |
| |
| <item> |
| <title>FMTV Challenge 2016</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-07-05_fmtv_challenge/</link> |
| <pubDate>Tue, 05 Jul 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-07-05_fmtv_challenge/</guid> |
| <description><p>The Formal Methods for Timing Verification challenge |
| (<a href="https://waters2016.inria.fr/challenge/">FMTV</a>) |
| at International Workshop on Analysis Tools and Methodologies |
| for Embedded and Real-time Systems |
| (<a href="http://waters2016.inria.fr/">WATERS</a>) |
| is based on an Amalthea model of a Bosch Engine Control.</p> |
| |
| <p></p> |
| |
| <p><strong>About the FMTV Challenge</strong></p> |
| |
| <p>The purpose of the Formal Methods for Timing Verification (FMTV) challenge is to share ideas, experiences and solutions to a concrete timing verification problem issued from real industrial case studies. It also aims at promoting discussions, closer interactions, cross fertilization of ideas and synergies across the breadth of the real-time research community, as well as attracting industrial practitioners from different domains having a specific interest in timing verification.</p> |
| |
| <p><strong>The 2016 FMTV Challenge</strong></p> |
| |
| <p>The 2016 challenge is proposed by Arne Hamann, Simon Kramer, Martin Lukasiewycz and Dirk Ziegenbein from Robert Bosch GmbH.</p> |
| |
| <p>An initial version of the challenge is available here: |
| <a href="http://ecrts.eit.uni-kl.de/forum/download/file.php?id=35">FMTV_challenge_2016_Bosch.pdf</a></p> |
| |
| <p>The model can be downloaded here: |
| <a href="http://ecrts.eit.uni-kl.de/forum/download/file.php?id=36">FMTV_Challenge_2016_Bosch_Engine_Control_Model.zip</a></p></description> |
| </item> |
| |
| <item> |
| <title>Getting Started with APP4MC</title> |
| <link>https://www.eclipse.org/app4mc/gettingstarted/</link> |
| <pubDate>Mon, 04 Jul 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/gettingstarted/</guid> |
| <description> |
| |
| <p>This tutorial will get you started with APP4MC. It is based on APP4MC version 0.7.0.</p> |
| |
| <hr /> |
| |
| <h4 id="tutorial-1-create-an-amalthea-model">Tutorial 1 - Create an AMALTHEA model</h4> |
| |
| <hr /> |
| |
| <p>The purpose of this tutorial is to get familiar with the structure |
| of the AMALTHEA model itself as well as the currently available editor.<br /> |
| It contains step by step directions to create a project, a model folder |
| and several model files.<br /> |
| <a href="../gs-create-model">start tutorial</a></p> |
| </description> |
| </item> |
| |
| <item> |
| <title>Summer School Automotive 2016</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-06-27_summer_school_automotive_2016/</link> |
| <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-06-27_summer_school_automotive_2016/</guid> |
| <description><p>Summer School |
| at the University of Applied Sciences and Arts in Dortmund |
| from the 27th of June until the 1st of July 2016</p> |
| |
| <p>More about the <a href="https://internationalresearchdortmund.wikispaces.com/Automotive2016">Summer School</a></p> |
| |
| <p></p> |
| |
| <h2 id="automotive-software-engineering">Automotive Software Engineering</h2> |
| |
| <h3 id="target-develop-a-software-system-for-a-multicore-microcontroller-with-the-amalthea-tool-chain">Target: develop a software system for a multicore microcontroller with the AMALTHEA tool chain</h3> |
| |
| <p><strong>Trainers:</strong></p> |
| |
| <ul> |
| <li>Lukas Krawczyk, Uwe Lauschner, Robert Hoettger, Phil Naerdemann (Dortmund University of Applied Sciences and Arts)</li> |
| <li>Jan Meel (KU Leuven)</li> |
| <li>Andreas Sailer (Timing-Architects Embedded Systems GmbH)</li> |
| <li>Lothar Wendehals (itemis AG)</li> |
| <li>Mikael Barbero (Eclipse Foundation Europe)</li> |
| <li>Markus Schmidt (Behr-Hella Thermocontrol GmbH)</li> |
| </ul></description> |
| </item> |
| |
| <item> |
| <title>APP4MC Talk EclipseCon France 2016</title> |
| <link>https://www.eclipse.org/app4mc/news/2016-06-08__eclipsecon_france_2016__capra/</link> |
| <pubDate>Wed, 08 Jun 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/news/2016-06-08__eclipsecon_france_2016__capra/</guid> |
| <description><p>At EclipseCon France 2016, Toulouse - <a href="https://www.eclipsecon.org/france2016/session/capra-configurable-and-extendable-emf-based-traceability-tool">Capra: A Configurable and Extendable EMF based Traceability Tool</a><br /> |
| <em>Presentation by <strong>Salome Maro</strong>, Gothenburg University</em> |
| </p></description> |
| </item> |
| |
| <item> |
| <title>Getting Started with APP4MC</title> |
| <link>https://www.eclipse.org/app4mc/gs-create-model/</link> |
| <pubDate>Fri, 13 May 2016 00:00:00 +0000</pubDate> |
| |
| <guid>https://www.eclipse.org/app4mc/gs-create-model/</guid> |
| <description> |
| |
| <h1 id="general-model-content">General model content</h1> |
| |
| <p>The purpose of this session is to get familiar with the structure of the <strong>AMALTHEA model</strong> itself as well as the currently available editor. Therefore, a new model should be created in its own project using the following steps and content.</p> |
| |
| <p>The following image is a simplified overview of the model that will be created in this session.</p> |
| |
| <div style="text-align: center"><img src="https://www.eclipse.org/app4mc/images/gs-create-model/training-overview-model.png" class="img-responsive"> </div> |
| |
| <hr /> |
| |
| <h2 id="general-model-setup">General model setup</h2> |
| |
| <ol> |
| <li><p>Create a new general project named <em>org.eclipse.amalthea.training.model</em></p> |
| |
| <ul> |
| <li>From the <strong>File</strong> menu, select the item <strong>New &gt; Project&hellip;</strong></li> |
| <li>On the first page of the wizard, expand the item <strong>General</strong> |
| and select <strong>Project</strong>. Then click <strong>Next</strong></li> |
| <li>On the second page of the wizard fill the <strong>Project name</strong> field |
| with <em>org.eclipse.amalthea.training.model</em>, then click <strong>Finish</strong><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/01-create-project.png" class="img-responsive"><br /></li> |
| <li>The project created should appear in the <strong>Model Explorer</strong> view |
| <br /></li> |
| </ul></li> |
| |
| <li><p>Create a new folder named &ldquo;model1&rdquo; inside the created project</p> |
| |
| <ul> |
| <li>Select the created project</li> |
| <li>In the context menu (right mouse button) select <strong>New &gt; Folder</strong><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/02-create-folder.png" class="img-responsive"><br /></li> |
| <li>Fill the text field <strong>Folder name</strong> with <em>model1</em>, then click <strong>Finish</strong><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/03-create-folder.png" class="img-responsive"><br /></li> |
| </ul></li> |
| |
| <li><p>Create a new AMALTHEA model</p> |
| |
| <ul> |
| <li>Select the folder named <em>model1</em></li> |
| <li>In the context menu, select <strong>New &gt; AMALTHEA Model</strong><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/04-create-model.png" class="img-responsive"><br /></li> |
| <li>In the dialog |
| |
| <ul> |
| <li>Keep the defaults (ie. folder: &ldquo;model1&rdquo;, filename: &ldquo;default.amxmi&rdquo;)</li> |
| <li>Click <strong>Finish</strong> to create an empty model</li> |
| </ul></li> |
| <li>The model is created and the standard AMALTHEA tree editor |
| is opened on the left side of the workbench.<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/05-create-model.png" class="img-responsive"><br /></li> |
| </ul></li> |
| </ol> |
| |
| <hr /> |
| |
| <h2 id="adding-software-structure">Adding software structure</h2> |
| |
| <ol> |
| <li><p>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Sw Model</strong>.<br /> |
| It will add a child node named <strong>Software</strong> to the model<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/06-create-sw-model.png" class="img-responsive"></p></li> |
| |
| <li><p>Create a label named <em>LabelA</em></p> |
| |
| <ul> |
| <li>Under the <strong>Software</strong> item select the <strong>Labels</strong> item and right-click on <strong>New Child &gt; Label</strong>.<br /> |
| This will add a new child under <strong>Labels</strong> by default labeled <strong>Label</strong>.</li> |
| <li>Select this <em>Label</em> then click on the <strong>Properties</strong> tab below the tree editor to display the label properties.</li> |
| <li>Click on the cell next to the property named <strong>Name</strong> and fill it with <em>LabelA</em>.<br /> |
| Press enter. The label item in the tree editor should be renamed <em>LabelA</em>.<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/07-create-label.png" class="img-responsive"><br /></li> |
| </ul></li> |
| |
| <li><p>Create a label named <em>LabelB</em></p></li> |
| |
| <li><p>Create a Runnable named <em>Runnable1</em></p> |
| |
| <ul> |
| <li>Under the <strong>Software</strong> item select the <strong>Runnables</strong> item and right-click on <strong>New Child &gt; Runnable</strong>.<br /> |
| This will add a new child under <strong>Runnables</strong> by default labeled <strong>Runnable</strong></li> |
| <li>Select this <em>Runnable</em> then click on the <strong>Properties</strong> tab below the tree editor to name it <em>Runnable1</em>. |
| <br /></li> |
| </ul></li> |
| |
| <li><p>Create 2 additional runnables named respectively <em>Runnable2</em> and <em>Runnable3</em>.<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/08-create-runnables.png" class="img-responsive"></p></li> |
| |
| <li><p>Expand the runnable named <em>Runnable1</em></p> |
| |
| <ul> |
| <li>Create an instance of * instructions (constant) 20 * |
| |
| <ul> |
| <li>From the context menu under <strong>Runnable Items</strong>, select <strong>New Child &gt; Instructions Constant</strong></li> |
| <li>Select the child created then click on the <strong>Properties</strong> tab above the tree editor.</li> |
| <li>Change the value of the <strong>Value</strong> property to <em>20</em></li> |
| </ul></li> |
| <li>Create a <em>write access to LabelA</em> |
| |
| <ul> |
| <li>Create another runnable item by selecting the menu item <strong>New Child &gt; Label Access</strong></li> |
| <li>Select the child created then click on the <strong>Properties</strong> tab above the tree editor.</li> |
| <li>Select for the <strong>Access</strong> property the value <em>write</em></li> |
| <li>Select for the <strong>Data</strong> property the value <em>Label LabelA</em><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/09-create-runnable1-label-access.png" class="img-responsive"><br /> |
| <br /></li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Expand the runnable named <em>Runnable2</em> and, under its runnable items:</p> |
| |
| <ul> |
| <li>Create a <em>read access to LabelA</em></li> |
| <li>Create a <em>25 constant instructions</em></li> |
| <li>Create a <em>write access to LabelB</em></li> |
| </ul></li> |
| |
| <li><p>Expand the runnable named <em>Runnable3</em> and, under its runnable items:</p> |
| |
| <ul> |
| <li>Create a <em>read access to LabelB</em></li> |
| <li>Create a <em>10 constant instructions</em><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/10-create-runnables-final.png" class="img-responsive"><br /> |
| <br /></li> |
| </ul></li> |
| |
| <li><p>Create 3 tasks named respectively <em>Task1</em>, <em>Task2</em> and <em>Task3</em></p> |
| |
| <ul> |
| <li>Under the <strong>Software</strong> item select the <strong>Tasks</strong> item and right-click on <strong>New Child &gt; Task</strong>.<br /> |
| It will add a new child by default labeled <strong>Task</strong>.</li> |
| <li>Select this <em>Task</em> then click on the <strong>Properties</strong> tab above the tree editor to name it <em>Task1</em>.</li> |
| <li>Repeat these steps to create the 2 other tasks.</li> |
| </ul></li> |
| |
| <li><p>Create a <em>CallGraph</em> for the task <em>Task1</em></p> |
| |
| <ul> |
| <li>Right-click on the task named <em>Task1</em> then select the menu item <strong>New Child &gt; Call Graph</strong></li> |
| <li>Create a Call Sequence <em>CS1</em> |
| |
| <ul> |
| <li>Expand the task <em>Task1</em> to visualize its child</li> |
| <li>Right-click on the <strong>Call Graph</strong> child then select the menu item <strong>New Child &gt; Graph Entries &gt; Call Sequence</strong></li> |
| <li>Name this new call sequence <em>CS1</em></li> |
| </ul></li> |
| <li>Create a Task Runnable Call to <em>Runnable1</em> |
| |
| <ul> |
| <li>Right-click on the call sequence <em>CS1</em><br /> |
| then select the menu item <strong>New Child &gt; Calls &gt; Task Runnable Call</strong></li> |
| <li>Select the created child then click on the <strong>Properties</strong> tab<br /> |
| and set the <strong>Runnable</strong> property to <em>Runnable Runnable1</em>.</li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Create a <em>CallGraph</em> for the task <em>Task2</em></p> |
| |
| <ul> |
| <li>Right-click on the task named <em>Task2</em> then select the menu item <strong>New Child &gt; Call Graph</strong></li> |
| <li>Create a Call Sequence <em>CS1</em></li> |
| <li>Create a Task Runnable Call to <em>Runnable2</em></li> |
| </ul></li> |
| |
| <li><p>Create a <em>CallGraph</em> for the task <em>Task3</em></p> |
| |
| <ul> |
| <li>Right-click on the task named <em>Task3</em> then select the menu item <strong>New Child &gt; Call Graph</strong></li> |
| <li>Create a Call Sequence <em>CS1</em></li> |
| <li>Create a Task Runnable Call to <em>Runnable3</em><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/11-create-task-runnable-calls.png" class="img-responsive"></li> |
| </ul></li> |
| </ol> |
| |
| <hr /> |
| |
| <h2 id="add-stimuli-to-tasks">Add Stimuli to Tasks</h2> |
| |
| <p>Stimuli are describing the activation of Tasks.</p> |
| |
| <ol> |
| <li><p>Create 3 Stimuli named <em>Stimuli1</em>, <em>Stimuli2</em>, and <em>Stimuli3</em></p> |
| |
| <ul> |
| <li>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Stimuli Model</strong>.<br /> |
| It will add a child node named <strong>Stimuli</strong> to the model.</li> |
| <li>Create a Periodic Stimuli named <em>Stimuli1</em> and set the recurrence to 10ms |
| |
| <ul> |
| <li>Right-click on the Stimuli Model and select the menu item <strong>New Child &gt; Stimuli &gt; Periodic</strong></li> |
| <li>Expand the <em>Stimuli</em> node to visualize the created child.</li> |
| <li>Select the Child named by default <em>Periodic</em> then rename it <em>Stimuli1</em></li> |
| <li>Right-click on the renamed stimuli and select the menu item <strong>New Child &gt; Recurrence</strong></li> |
| <li>Select the created Recurrence</li> |
| <li>Set the value of the <strong>Unit</strong> property to <em>ms</em></li> |
| <li>Set the value of the <strong>Value</strong> property to <em>10</em></li> |
| </ul></li> |
| <li>Create a seconde Periodic Stimuli named *Stimuli2&rdquo; and set the recurrence to 30ms</li> |
| <li>Create an Inter Process Stimuli named <em>Stimuli3</em> and set the recurrence to 10ms |
| |
| <ul> |
| <li>Right-click on the Stimuli Model and select the menu item <strong>New Child &gt; Stimuli &gt; Inter Process</strong></li> |
| <li>Select the Inter Process node and name it <strong>Stimuli3</strong><br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/12-create-stimuli.png" class="img-responsive"/></li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Add the Stimuli <em>Stimuli1</em> to the task <em>Task1</em></p> |
| |
| <ul> |
| <li>Retrieve and select the task <em>Task1</em> which is located under the nodes AMALTHEA / Softwares / Tasks.<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/13-task1-stimulus-1.png" class="img-responsive"/><br /></li> |
| <li>On the <strong>Properties</strong>, click on the button next to the field |
| (<img src="https://www.eclipse.org/app4mc/images/gs-create-model/ui-edit-button.png"/>) |
| to open relationship dialog</li> |
| <li>Select the Stimuli <em>Periodic Stimuli1</em></li> |
| <li>Press the <strong>Add</strong> button<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/14-task1-stimulus-2.png" class="img-responsive"/><br /></li> |
| <li>Press <strong>OK</strong> to close the dialog.</li> |
| </ul></li> |
| |
| <li><p>Add the Stimuli <em>Stimuli2</em> to the task <em>Task2</em></p></li> |
| |
| <li><p>Add the Stimuli <em>Stimuli3</em> to the task <em>Task3</em></p></li> |
| |
| <li><p>Add an <em>Interprocess Activation</em> from <em>Task2</em> to <em>Task3</em></p> |
| |
| <ul> |
| <li>Expand the <em>Task2</em>,</li> |
| <li>Expand its <em>Call Graph</em> node</li> |
| <li>Select the call sequence <strong>CS1</strong></li> |
| <li>Right-click on the node and select the menu item <strong>New Child &gt; Calls &gt; Inter Process Activation</strong></li> |
| <li>Select the created node and in the <em>Stimuli</em> property, select the Stiuli named <strong>Inter Process Stimuli3</strong></li> |
| </ul></li> |
| </ol> |
| |
| <hr /> |
| |
| <h2 id="create-simple-hardware-model">Create simple hardware model</h2> |
| |
| <p>In this section we are creating a simple hardware model with 2 cores and 1 global memory.</p> |
| |
| <ol> |
| <li><p>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Hw Model</strong>.<br /> |
| It will add a child node named <strong>Hardware</strong> to the model</p></li> |
| |
| <li><p>Create a new system name <em>DemoSystem</em></p> |
| |
| <ul> |
| <li>Select the <em>Hardware</em> node previously created</li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; System</strong>.</li> |
| <li>Name the created item <em>DemoSystem</em> [PK: Is it expected that there is no type from this System?]</li> |
| </ul></li> |
| |
| <li><p>Create a new ECU named <em>Ecu1</em></p> |
| |
| <ul> |
| <li>Select the system named <em>DemoSystem</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; ECU</strong>.</li> |
| <li>Name the created item <em>Ecu1</em></li> |
| </ul></li> |
| |
| <li><p>Add a microcontroller named <em>MC1</em> to the ECU <em>Ecu1</em></p> |
| |
| <ul> |
| <li>Select the ECU <em>Ecu1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Microcontroller</strong>.</li> |
| <li>Name the created item <em>MC1</em></li> |
| </ul></li> |
| |
| <li><p>Create a memory type named <em>GlobalMemoryType</em></p> |
| |
| <ul> |
| <li>Select the <em>Hardware</em> node under the AMALTHEA model node</li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Memory type</strong>.</li> |
| <li>Set the name to <em>GlobalMemoryType</em></li> |
| <li>Set the size of memory to <em>512</em> (bytes)</li> |
| <li>Set the type of memory to RAM</li> |
| </ul></li> |
| |
| <li><p>Add a memory named <em>GlobalMemory</em> to <em>MC1</em></p> |
| |
| <ul> |
| <li>Select the microcontroller <em>MC1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Memory</strong></li> |
| <li>Name the created item <em>GlobalMemory</em></li> |
| <li>Set the type to <em>Memory Type GlobalMemoryType</em></li> |
| </ul></li> |
| |
| <li><p>Add a quartz &ldquo;100MHz&rdquo; to &ldquo;MC1&rdquo;</p> |
| |
| <ul> |
| <li>Select the microcontroller <em>MC1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Quartz</strong></li> |
| <li>Name the created item <em>100MHz</em></li> |
| <li>Set the <strong>Frequency</strong> property to <em>100000000</em></li> |
| </ul></li> |
| |
| <li><p>Create a core type named <em>CT1</em></p> |
| |
| <ul> |
| <li>Select the <em>Hardware</em> node under the AMALTHEA model node</li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Core type</strong></li> |
| <li>Set the name to <em>CT1</em></li> |
| <li>Set <strong>Instructions Per Cycle</strong> roperty of the core type to <em>1</em></li> |
| </ul></li> |
| |
| <li><p>Add a core &ldquo;Core1&rdquo; to &ldquo;MC1&rdquo;</p> |
| |
| <ul> |
| <li>Select the microcontroller <em>MC1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Core</strong></li> |
| <li>Name the created item <em>Core1</em></li> |
| <li>Set core type of &ldquo;Core1&rdquo; to &ldquo;CT1&rdquo;</li> |
| </ul></li> |
| |
| <li><p>Add a <strong>Prescaler</strong> named <em>PS1</em> to <em>Core1</em></p> |
| |
| <ul> |
| <li>Select the core <em>Core1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Prescaler</strong></li> |
| <li>Name the created item <em>PS1</em></li> |
| <li>Set the <strong>Clock Ratio</strong> property to <em>1.0</em></li> |
| <li>Set the <strong>Quartz</strong> property to &ldquo;100Mhz&rdquo;</li> |
| </ul></li> |
| |
| <li><p>Add a core &ldquo;Core2&rdquo; to &ldquo;MC1&rdquo;</p> |
| |
| <ul> |
| <li>Set core type of &ldquo;Core2&rdquo; to &ldquo;CT1&rdquo;</li> |
| </ul></li> |
| |
| <li><p>Add a <strong>Prescaler</strong> named <em>PS2</em> to <em>Core2</em></p> |
| |
| <ul> |
| <li>Add prescaler &ldquo;PS2&rdquo; to &ldquo;Core1&rdquo;</li> |
| <li>Set the <strong>Clock Ratio</strong> property to 2.0</li> |
| <li>Set the <strong>Quartz</strong> property to &ldquo;100Mhz&rdquo;</li> |
| </ul></li> |
| |
| <li><p>Add a <strong>Latency Path</strong> from cores to memory</p> |
| |
| <ul> |
| <li>Create a <strong>Latency Access Path</strong> named <em>Path1</em> |
| |
| <ul> |
| <li>Select the <em>Hardware</em> node under the AMALTHEA model node</li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Access Paths &gt; Latency Access Path</strong></li> |
| <li>Name the created item <em>Path1</em></li> |
| <li>Set the <strong>Source</strong> property to <em>Core Core1</em></li> |
| <li>Set the <strong>Target</strong> property to <em>Memory GlobalMemory</em></li> |
| </ul></li> |
| <li>Create a <strong>Latency Access Path</strong> named <em>Path2</em> |
| |
| <ul> |
| <li>Set the <strong>Source</strong> property to <em>Core Core1</em></li> |
| <li>Set the <strong>Target</strong> property to <em>Memory GlobalMemory</em></li> |
| </ul></li> |
| <li>Add a constant latency to &ldquo;Path1&rdquo; with access type &ldquo;RW&rdquo;, quartz &ldquo;100Mhz&rdquo; and value 20 |
| |
| <ul> |
| <li>Select the path <em>Path1</em></li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Latencies &gt; Latency Constant</strong></li> |
| <li>Select the created item</li> |
| <li>Set the <strong>Access Type</strong> property to <em>RW</em></li> |
| <li>Set the <strong>Quartz</strong> property to <em>Quartz 100Mhz</em></li> |
| <li>Set the <strong>Value</strong> property to <em>20</em></li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Optional: Feel free to add more memory elements to represent local memories |
| located at the cores with the proper latency access paths</p></li> |
| </ol> |
| |
| <p>At this point you should get a contents tree which looks like that:<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/15-hardware.png" class="img-responsive"></p> |
| |
| <hr /> |
| |
| <h2 id="create-simple-os-model">Create simple OS model</h2> |
| |
| <p>Create a simple OS model, containing schedulers for both cores.</p> |
| |
| <ol> |
| <li><p>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Os Model</strong>.<br /> |
| It will add a child node named <strong>Operating System</strong> to the model</p></li> |
| |
| <li><p>Add a new operating system with name <em>Default</em></p> |
| |
| <ul> |
| <li>Select the <em>Operating System</em> node previously created</li> |
| <li>Right-click on the item then select the menu item <strong>New Child &gt; Operating Systems &gt; Operating System</strong>.</li> |
| <li>Name the created item <em>Default</em></li> |
| </ul></li> |
| |
| <li><p>Add a Task Scheduler named <em>Scheduler1</em></p> |
| |
| <ul> |
| <li>Right-click on the <em>Default</em> operating system |
| then select the menu item <strong>New Child &gt; Task Scheduler</strong></li> |
| <li>Name the created item <em>Scheduler1</em></li> |
| </ul></li> |
| |
| <li><p>Add scheduling algorithm OSEK to <em>Scheduler1</em></p> |
| |
| <ul> |
| <li>Right-click on the <em>Scheduler1</em> task scheduler |
| then select the menu item <strong>New Child &gt; Scheduling Algorithm &gt; OSEK</strong></li> |
| </ul></li> |
| |
| <li><p>Add a Scheduling HW Unit to <em>Scheduler1</em></p> |
| |
| <ul> |
| <li>Right-click on the <em>Scheduler1</em> task scheduler |
| then select the menu item <strong>New Child &gt; Scheduling Unit &gt; Scheduling HW Unit</strong></li> |
| </ul></li> |
| |
| <li><p>Add a Task Scheduler named <em>Scheduler2</em></p></li> |
| |
| <li><p>Add a scheduling algorithm OSEK to <em>Scheduler2</em></p></li> |
| |
| <li><p>Add a Scheduling HW Unit to <em>Scheduler2</em></p></li> |
| </ol> |
| |
| <p>At this point you should get a contents tree which looks like that:<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/16-operating-system.png" class="img-responsive"></p> |
| |
| <hr /> |
| |
| <h2 id="add-timing-requirements-for-tasks">Add timing requirements for Tasks</h2> |
| |
| <p>Adding some deadline informations to the already created tasks.</p> |
| |
| <blockquote> |
| <p>Note: Doing this in a separate file, it can easy be reused for other models if the names of the tasks are the same!</p> |
| </blockquote> |
| |
| <ol> |
| <li><p>Create a new AMALTHEA model &ldquo;constraints.amxmi&rdquo; in the same folder as the already created AMALTHEA meta model</p> |
| |
| <ul> |
| <li>Select the folder <em>model1</em> created during the paragraph <strong>General model setup</strong></li> |
| <li>Right-click on the mouse and select the menu item <strong>New &gt; AMALTHEA Model</strong></li> |
| <li>Press <strong>Next</strong> to define the associated model file naming it <em>constraints.amxmi</em><br /> |
| then press on <strong>Finish</strong> to create an empty model.</li> |
| </ul></li> |
| |
| <li><p>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Constraints Model</strong>.<br /> |
| It will add a child node named <strong>Constraints</strong> to the model</p></li> |
| |
| <li><p>Add a new Process Requirement named <em>DeadlineTask1</em></p> |
| |
| <ul> |
| <li>Select the <strong>Constraints</strong> item on the tree editor</li> |
| <li>Right-click on the mouse and select the menu item <strong>New Child &gt; Requirements &gt; Process Requirement</strong></li> |
| <li>Name the created item <em>DeadlineTask1</em></li> |
| <li>Set the <strong>Process</strong> property to the value <em>Task Task1</em></li> |
| </ul></li> |
| |
| <li><p>Add a Time Requirement Limit to &ldquo;DeadlineTask1&rdquo; Process Requirement</p> |
| |
| <ul> |
| <li>Select the Process Requirement named <em>DeadlineTask1 Task1</em></li> |
| <li>Right-click on the mouse and select the menu item <strong>New Child &gt; Limit &gt; Time Requirement Limit</strong></li> |
| <li>Set the <strong>Limit Type</strong> property to <em>UpperLimit</em></li> |
| <li>Set the <strong>Metric</strong> property to <em>ResponseTime</em></li> |
| <li>Add limit to TimeRequirementLimit |
| |
| <ul> |
| <li>Right-click the mouse on the <em>ResponseTime</em> item and select the menu item <strong>New Child &gt; Limit Value</strong></li> |
| <li>Set the <strong>Unit</strong> property of the new item to <em>ms</em></li> |
| <li>Set the <strong>Value</strong> property to <em>10</em></li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Add a new Process Requirement named <em>DeadlineTask2</em> and set its <strong>Process</strong> property to the value <em>Task Task2</em></p></li> |
| |
| <li><p>Add a Time Requirement Limit to &ldquo;DeadlineTask2&rdquo; Process Requirement</p> |
| |
| <ul> |
| <li>Set the <strong>Limit Type</strong> property to <em>UpperLimit</em></li> |
| <li>Set the <strong>Metric</strong> property to <em>ResponseTime</em></li> |
| <li>Add limit to the Time Requirement Limit |
| |
| <ul> |
| <li>Right-click the mouse on the <em>ResponseTime</em> item and select the menu item <strong>New Child &gt; Limit Value</strong></li> |
| <li>Set the <strong>Unit</strong> property of the new item to <em>ms</em></li> |
| <li>Set the <strong>Value</strong> property to <em>15</em></li> |
| </ul></li> |
| </ul></li> |
| |
| <li><p>Add a new Process Requirement named <em>DeadlineTask3</em> and set its <strong>Process</strong> property to the value <em>Task Task3</em></p></li> |
| |
| <li><p>Add a Time Requirement Limit to &ldquo;DeadlineTask3&rdquo; Process Requirement</p> |
| |
| <ul> |
| <li>Set the <strong>Limit Type</strong> property to <em>UpperLimit</em></li> |
| <li>Set the <strong>Metric</strong> property to <em>ResponseTime</em></li> |
| <li>Add limit to the Time Requirement Limit |
| |
| <ul> |
| <li>Right-click the mouse on the <em>ResponseTime</em> item and select the menu item <strong>New Child &gt; Limit Value</strong></li> |
| <li>Set the <strong>Unit</strong> property of the new item to <em>ms</em></li> |
| <li>Set the <strong>Value</strong> property to <em>15</em></li> |
| </ul></li> |
| </ul></li> |
| </ol> |
| |
| <p>At this point your model should look like this:<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/17-constraints.png" class="img-responsive"></p> |
| |
| <hr /> |
| |
| <h2 id="add-mapping-information-of-sw-elements-to-hardware">Add mapping information of SW elements to hardware</h2> |
| |
| <p>The mapping represents which software elements are mapped to dedicated hardware elements.</p> |
| |
| <blockquote> |
| <p>Note: The mapping is separated into an extra file, which makes it easier to replace or change a mapping!</p> |
| </blockquote> |
| |
| <ol> |
| <li><p>Create a new AMALTHEA model &ldquo;mapping.amxmi&rdquo; in the same folder as the already created AMALTHEA meta model</p></li> |
| |
| <li><p>Right-click on the AMALTHEA model on the tree editor then select the menu item <strong>New Child &gt; Mapping Model</strong>.<br /> |
| It will add a child node named <strong>Mapping</strong> to the model</p></li> |
| |
| <li><p>Add a <strong>Task Allocation</strong> element to the Mapping</p> |
| |
| <ul> |
| <li>Right-click the mouse on the <em>Mapping</em> item and select<br /> |
| the menu item <strong>New Child &gt; Process Allocation &gt; Task Allocation</strong></li> |
| <li>Set the <strong>Process</strong> property to <em>Task Task1</em></li> |
| <li>Set the <strong>Scheduler</strong> property to <em>Task Scheduler Scheduler1</em></li> |
| </ul></li> |
| |
| <li><p>Add a second <strong>Task Allocation</strong> element to the Mapping and<br /> |
| set the <strong>Process</strong> to <em>Task2</em> and the <strong>Scheduler</strong> to <em>Scheduler1</em></p></li> |
| |
| <li><p>Add a third <strong>Task Allocation</strong> element to the Mapping<br /> |
| and set the <strong>Process</strong> to <em>Task3</em> and the <strong>Scheduler</strong> to <em>Scheduler2</em></p></li> |
| |
| <li><p>Under the Mapping item add a <strong>Core Allocation</strong> element</p> |
| |
| <ul> |
| <li>Right-click the mouse on the <em>Mapping</em> item<br /> |
| and select the menu item <strong>New Child &gt; Core Allocation</strong></li> |
| <li>Set the <strong>Core</strong> property to <em>Core Core1</em></li> |
| <li>Set the <strong>Scheduler</strong> property to <em>Task Scheduler Scheduler1</em></li> |
| </ul></li> |
| |
| <li><p>Add a second <strong>Core Allocation</strong> element and set |
| the <strong>Core</strong> to <em>Core Core2</em> and the <strong>Scheduler</strong> to <em>Scheduler2</em></p></li> |
| |
| <li><p>Add an Abstract Element Mapping at least for all Labels to map them to <em>GlobalMemory</em></p> |
| |
| <ul> |
| <li>Right-click the mouse on the <em>Mapping</em> item and select<br /> |
| the menu item <strong>New Child &gt; Mapping &gt; Abstract Element Mapping</strong></li> |
| <li>Set the <strong>Abstract Element</strong> property to <em>Label LabelA</em></li> |
| <li>Set the <strong>Mem</strong> property to <em>Memory GlobalMemory</em></li> |
| <li>Repeat the last 3 steps steps for the <em>Label LabelB</em></li> |
| </ul></li> |
| |
| <li><p>Optional: If more memories are available, make a proper assignment to other memory elements.</p></li> |
| </ol> |
| |
| <p>At this point your model should look like this:<br /> |
| &nbsp;<br /> |
| <img src="https://www.eclipse.org/app4mc/images/gs-create-model/18-mapping.png" class="img-responsive"></p> |
| |
| <hr /> |
| |
| <h2 id="solution">Solution</h2> |
| |
| <p>The solution for this exercise is available in this plugin: <a href="https://www.eclipse.org/app4mc/models/org.eclipse.app4mc.amalthea.solution1.zip">org.eclipse.app4mc.amalthea.solution1</a></p> |
| </description> |
| </item> |
| |
| </channel> |
| </rss> |