Commit 63ccc77c authored by Simon Barner's avatar Simon Barner
Browse files

Add documentation for allocations

Issue-Ref: 3834
Issue-Url: https://af3-developer.fortiss.org/issues/3834

Signed-off-by: Simon Barner's avatarSimon Barner <barner@fortiss.org>
parent 16b8f9b6
allocations.html 91f2636b00d59253f7007864d4e0ebdd0b713dad RED
allocations.html e3da5c90a53a20b69c99631c8dc78f44092298e7 RED
beagle_java_deployment.html 71722ccb21d588da69256307988ff9567c0d93a0 RED
code_generation.html d05bdb6fb049422d08a450324f0563391e5e48e9 RED
partition_architecture.html a92e71ac333c972cba98660c43b9cb13528074f2 RED
......@@ -7,4 +7,4 @@ platform_architecture_generic.html cb91689226e3ed5168b11ba2d008601dc2661637 RED
platform_architecture_hierarchical.html 3c410b1c8ee284b2080d03eb5d022cdee531257a RED
system_schedule.html 58dccc62eb8fe2a731a12d118638f932510a82e6 RED
task_architecture.html fbce88173c788b20b1a7d97195f935f685c1d7e6 RED
technical_viewpoint.html b74101aeb2ffd34b21cd53cad2116c694b5424de RED
technical_viewpoint.html 8e81d762643fe7b531f3e5b2ffee7960f2ace8bb RED
......@@ -2,57 +2,71 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Defining a deployment using AutoFOCUS3 (AF3)</title>
<title>Defining a Allocations in AutoFOCUS3</title>
</head>
<body>
<h2><u><font color="#336699">Defining a Deployment</font></u></h2>
<h2><u><font color="#336699">Defining Allocations in AutoFOCUS3</font></u></h2>
AutoFOCUS supports deployment of component architectures to platform architectures.
You can add a deployment to your model using the context menu. The deployment is automatically linked to the first component architecture and the first platform architecture found in your model.
<p>
The allocation model is used to define mappings between the following architectural viewpoints of AutoFOCUS3.
<ul>
<li><a href="../component_architecture.html">Component Architecture</a></li>
<li><a href="task_architecture.html">Task Architecture</a></li>
<li><a href="partition_architecture.html">Partition Architecture</a></li>
<li><a href="platform_architecture.html">Platform Architecture</a></li>
</ul>
</p>
<p>
In a modern HW/SW architecture, the mapping of software to the platform is performed in several
steps. In AutoFOCUS3, such mappings are defined by means of <i>allocation tables</i>.
Each of these allocation tables defines a set of relations (1:1, 1:n, n:1) between entities
of a source and target view. Multiple allocation tables are grouped in an <i>Allocations</i> model
that can be added using the context menu of the project.</p>
<img src="./pictures/Allocations.Add.png" />
<br><br>
<img src="./pictures/MDeployment.Add.png">
<br><br>
<p>An allocation tables of a particular type can only be added in case both the source and the target view
exist in the project, e.g., in order to define a <i>Component-To-Task</i> allocation table, both a
<i><a href="../component_architecture.html">Component Architecture</a></i> and a
<i><a href="task_architecture.html">Task Architecture</a></i> must be present.<p>
<p>Some allocation tables subsume others. In order enforce an unambiguous definition, it will
not be possible to define either of the sub-subsumed tables within the same <i>Allocations</i>
(but certainly, it is possible to define an alternative mapping in another <i>Allocations</i> model.
For example, if a <i>Component-To-Hardware</i> allocation table is contained a given <i>Allocations</i>
model, neither a <i>Component-To-Task</i> nor a <i>Task-To-Hardware</i> model can be added. AutoFOCUS3
comes with the following allocation tables:</p>
The editor for a deployment consists of set of different views:
<ul>
<li>Component-ECU Mapping</li>
<li>Sensor/Actuator-Port Mapping</li>
<li>Tranceiver-Port Mapping</li>
<li>Raw Mappings</li>
</ul>
<br><br>
<h3><u><font color="#336699">Component-ECU Mapping</font></u></h3>
In this editor, you can drag and drop the components from the tree view on the left-hand side onto the execution units displayed in the right-hand side. You can undeploy the components using the context menu on the left-hand view by right-clicking on the corresponding component.
<br><br>
AutoFOCUS also supports the deployment of components onto execution units via a purely graphical editor. The red arrows describe this deployment. A deployment of a component
can be created by holding down Alt and dragging the specific component onto the desired execution unit. To delete a deployment simply select the red arrow and press the delete button.
<br><br>
<img src="./pictures/Deployment_new_editor.png">
<br><br>
<img src="./pictures/MDeployment.CMP.ECU.png">
<h3><u><font color="#336699">Sensor/Actuator-Port Mapping</font></u></h3>
In this editor one can map the input ports of the logical components to the corresponding sensors of the ECU. The output ports are mapped onto corresponding actuators.
<br><br>
<img src="./pictures/MDeployment.Sens.Act.png">
<h3><u><font color="#336699">Tranceiver-Port Mapping</font></u></h3>
In this editor one can map the in-/output ports of the logical components to tranceiver ports which connect the ECUs with the bus. This mapping demonstrates the informations exchange between the ECUs over the bus.
<br><br>
<img src="./pictures/MDeployment.Transceiver.png">
<h3><u><font color="#336699">Raw Mapping</font></u></h3>
In this editor one can map the in/output ports of logical components to any actuators/sensors/tranceivers of the platform architecture.
The table editor allows you to allocate components and ports by selecting pairs with this simple user interface.
<br><br>
<img src="./pictures/MDeployment.Raw.png">
<br><br>
Allocating components to execution units is done with the "New..." button on the left-hand side of the table-based editor.
<br><br>
<img src="./pictures/Deployment.Allocate.Component.png">
<br><br>
Allocating ports to platform I/O units is done with the "New..." button on the right-hand side of the table-based editor.
<br><br>
<img src="./pictures/Deployment.Allocate.Port.png">
<li><i>Component-to-Hardware</i>: Drop in replacement for former <i>Deployment</i> model supported
in previous releases of AutoFOCUS3. Mainly used for <a href="code_generation.html">code generation</a>.</li>
<li><i>Component-to-Task</i>: Allocation (and potentially clustering) of components to runnable entities (tasks).</li>
<li><i>Task-to-Hardware</i>: Mapping of tasks to computational hardware resources.</li>
<li><i>Component-to-Partition</i>: Direct allocation of Components to Partitions. Likely to be deprecated
in future releases.</li>
<li><i>Task-to-Partition</i>: Mapping of tasks to pace partitions / compartments.</li>
<li><i>Partition-to-Hardware</i>: Allocation of partitions to hardware resources.</li>
</ul>
</p>
<p>AutoFOCUS3 provides a generic editor to view and work with allocation tables. It can be opened
by double-clicking an allocation table in the model navigator. The editor allows to
select the underlying source and target view. Note that this will clear any previously defined
allocation entries (if you confirm in the respective dialog).</p>
<p>An allocation from a source entity represented by one of the rows to a target entity (represented
by one of the columns) is established by checking the respective checkbox. The editor will enforce
the underlying type of the allocation (1:1, 1:n, n:1) by disabling the respective checkboxes.</p>
<p>Allocations may depend on each other, e.g., the ports of a component <i>C</i> can only be mapped
to the ports of task <i>T</i> if <i>C</i> is mapped to <T>. In order to simplify the mapping for
secondary entities such as ports, the generic allocation table editor allows to filter the view by
either a source or a target parent entities (see figure below).</p>
<img src="./pictures/Allocations.Ta2Ca.Map.Entities.png"</a>
</body>
</html>
\ No newline at end of file
......@@ -16,6 +16,10 @@
<h2><u><font color="#336699">Defining a Deployment, Generating and Running code with the Beagle Java platform</font></u></h2>
<p><font color="red"><b>Note</b>: The BeagleBone platform will be deprecated in the near future in favor a platform based
on the Raspberry Pi. Therefore, this documentation still references the <i>Deployment</i> model that
has been replaced with the <i>Components-to-Hardware</i> <a href="allocations.html">allocation</a>.</font></p>
AutoFOCUS supports a special platform, which was inspired by the BeagleBone development board provided by <A HREF="http://beagleboard.org/">BeagleBoard</A>.
However, Beagle-specific hardware sensors and actuators (i.e. UART communication and direct processor pin access) have not been released yet.
Therefore, AF3 Phoenix 2.4.1 only contains the platform elements usable with any Java-based platform.
......
......@@ -16,6 +16,10 @@
<h2><u><font color="#336699">Generating Code for Components and Deployments</font></u></h2>
<p><font color="red"><b>Note</b>: The <i>Deployment</i> model has been replaced with the
<i>Components-to-Hardware</i> <a href="allocations.html">allocation</a>. However, the concepts
of this documentation still apply. It be updated in a future release of AutoFOCUS3.</font></p>
AutoFOCUS supports C code generation of component architectures as well as deployments.
Currently, we only support C code generation for components with code specifications and platform architectures with the generic elements.
Full support for state and mode automata and other platforms is still work in progress.
......
......@@ -30,13 +30,7 @@ HW/SW platform (e.g., an RTOS). </li>
architecture abstracts the services provided by hypervisors (segregation of software entities by
means of time-space partitioning). </li>
<li><i><a href="allocations.html">Allocations</a></i>: The allocation model is used to define
mappings between the following following viewpoints:</li>
<ul>
<li><a href="../component_architecture.html">Component Architecture</a></li>
<li><a href="task_architecture.html">Task Architecture</a></li>
<li><a href="partition_architecture.html">Partition Architecture</a></li>
<li><a href="platform_architecture.html">Platform Architecture</a></li>
</ul>
mappings between different architectural viewpoints of AutoFOCUS3.</li>
<li><i><a href="system_schedule.html">System schedule</a></i>: A System Schedule is a container for
the schedules for all resources referenced by the given allocation.</li>
</ul>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment