\chapter{Future Work}
\label{chapter:future_work}

\subsubsection{Improve Trace Interface Standard}

It has been shown that a complete software to system mapping is possible for an
\gls{osekos} and should accordingly also be possible for an \gls{autosaros}.
However, detailed knowledge of the \gls{os} is required to understand and
implement this mapping.  \gls{osek} tries to minimize this effort via the
\gls{orti} trace interface.  Unfortunately, this interface is only regulated
for a subset of all \gls{os} entity types.

Some entities like spinlocks, semaphores, and inter-process communication
techniques like \gls{autosar} sender-receiver-communication are not covered at
all.  In theory \gls{osek} allows it to add additional attributes to the
\gls{orti} file, but this option is currently not comprehensively used by the
\gls{os} vendors.  To solve this problem further efforts to reach a common
trace interface standard for all \gls{autosar} system entities should be made.

\subsubsection{Evaluate Different Hardware Platforms}

In this thesis the feasibility of recording cycle accurate hardware traces was
validated for the Infineon Aurix TriCore processor family using the Infineon
Multi-Core Debug System.  As described in \autoref{subsection:hardware_tracing}
there exists different trace standards for other processor families.

In order to achieve a better understanding of the trace capabilities of various
hardware platforms different other processor families should be tested in the
future.  It has been shown that cycle accurate recording of data events on the
Infineon TC298TF processor is only feasible for certain clock settings.  It
would be interesting to know if similar constraints also exist for other
platforms.

\subsubsection{Evaluate Different Operating Systems}

\glsdesc{ee} is used as a representative for an \gls{osek} compliant \gls{os}
in this thesis.  It is a sufficient choice because of the available source code
and the permissive license.  For \gls{ee}, it could be shown that a mapping
from software to system entities is feasible.

However, \gls{osek} has been taken over from \gls{autosar}.  Since
\gls{autosar} is a superset of \gls{osek} the reasoning for most system
entities is legitimate for both \gls{os} standards. Nevertheless, \gls{autosar}
introduces new synchronization patterns (of which some have been adopted by
\gls{ee}) and it would be interesting to know if a mapping is possible for
those new techniques as well.

Additionally, a complete mapping could only be created because the source code
of \gls{ee} is freely available.  It would be interesting to know if the same
approach is feasible for a commercial \gls{os} that does not make its source
code available.  This is an important question to answer since the automotive
industry relies predominantly on commercial \glspl{os}.

\subsubsection{Validate Mapping With Real World Applications}

Finally, the feasibility of the software to system mapping has been shown and
validated for several test applications.  One part of those applications was
created manually to cover specific test cases, the other part was created
randomly.   However, all test applications have in common that they do not
execute real functionality.  Instead, dummy instructions are used to simulate
runtime that would emerge on real hardware due the computation of algorithms
and feedback loops.

It may be possible that the trace capability of the tested hardware is limited
for real applications.  If this is the case the mapping introduced in this
thesis may not be completely applied in the real world for example because
the bandwidth for recording \gls{os} data events is limited.  To investigate
this question industrial case studies should be conducted based on the
approaches discussed in this thesis.

\subsubsection{Trace a Multi-ECU Setup}

In many environments microcontrollers operate in big networks.  For example, in
modern cars up to 70 ECUs are installed and connected via at least five
different field bus systems \cite{maxmaster}.  In such systems correct system
performance is not only dependent on the behavior of a single controller, but
also on the interaction of the system as a whole.  The ability to trace
multiple ECUs in parallel would provided enormous benefits in the analysis and
validation of multi-ECU systems.

In order to get meaningful results from the analysis of a multi-ECU trace it is
mandatory that the timestamps from all ECUs are synchronous. Otherwise, the
delay between different processor would result in wrong evaluation metrics and
no valid conclusions could be drawn.  Therefore, the feasibility of a multi-ECU
trace environment is an interesting and important topic for future work.
