From 0bc7120dbe8ab9e0262b1f7cf98dacaf1d6a14ac Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Sun, 30 Apr 2017 21:42:43 +0200 Subject: [PATCH] add devices supported --- appendix-planning.tex | 1 + methods.tex | 35 ++++++++++++++++++++++------------- theoretical-framework.tex | 21 --------------------- 3 files changed, 23 insertions(+), 34 deletions(-) delete mode 100644 theoretical-framework.tex diff --git a/appendix-planning.tex b/appendix-planning.tex index e6e6db2..42da646 100644 --- a/appendix-planning.tex +++ b/appendix-planning.tex @@ -30,6 +30,7 @@ \midrule 3-9 April & Dynamic task and share allocation, NodeMCU support\\ 10-16 April & Functions, finish up dynamic allocation\\ + & come up with nice demo\\ 17-23 April & Not much, my wedding\\ 24-30 April & Start writing introduction and literatu embedding.\\ & Use real shares and share shares between tasks\\ diff --git a/methods.tex b/methods.tex index 473efcf..1cf3b68 100644 --- a/methods.tex +++ b/methods.tex @@ -1,4 +1,5 @@ \section{\acrlong{TOP}} +\subsection{\gls{iTasks}} \gls{TOP} is a recent new programming paradigm implemented as \gls{iTasks}\cite{achten_introduction_2015} in the pure lazy functional language \gls{Clean}\cite{brus_cleanlanguage_1987}. \gls{iTasks} is a @@ -41,7 +42,10 @@ enterName = enterInformation "Enter your name" [] \caption{Example of a generated user interface} \end{figure} +\subsection{Combinators} + \section{\acrlong{EDSL}s} +\todo{while iTasks is also a DSL\ldots} \glspl{mTask} are expressed in a class based shallowly embedded \gls{EDSL}. There are two main types of \glspl{EDSL}. \todo{Small shallow embedded dsl intro} @@ -49,19 +53,25 @@ There are two main types of \glspl{EDSL}. \todo{Show that class based has the best of both worlds} \section{Architecture} -\section{Devices} - +\subsection{Devices} The client code for the devices is compiled from one codebase. For a device to be eligible for \glspl{mTask} it must be able to compile the shared codebase and implement (part of) the device specific interface. The shared codebase only uses standard \gls{C} and no special libraries or tricks are used. Therefore the code is compilable for almost any device or system. Note that it is not -needed to implement a full interface\todo{handshake}. The full interface, -listed in Appendix~\label{app:device-interface}\todo{update interface listing}, -also includes functions for accessing the peripherals that not every device -might have. Devices can choose what to implement by setting the correct macros -in the top of the file. -\todo{Supported devices} +needed to implement a full interface. The full interface, listed in +Appendix~\label{app:device-interface}\todo{update interface listing}, also +includes functions for accessing the peripherals that not every device might +have. Devices can choose what to implement by setting the correct macros in the +top of the file. When a server connects to a client the specifications are +communicated. + +The current list of supported and tested devices is as follows: +\begin{itemize} + \item $^*$\texttt{NIX} systems such as Linux + \item STM32 like development boards supported by \texttt{ChibiOS}. + \item \emph{Arduino} compatible microcontrollers +\end{itemize} \subsection{Specification} Devices are stored in a record type and all devices in the system are stored in @@ -75,11 +85,10 @@ exact specification is listed in Listing~\ref{lst:devicespec} \begin{lstlisting}[language=Clean,label={lst:devicespec}, caption={Device specification for \glspl{mTask}}] :: MTaskDeviceSpec = - {haveLed :: Bool - ,haveAio :: Bool - ,haveDio :: Bool - ,taskSpace :: Int // Bytes - ,sdsSpace :: Int // Bytes + {haveLed :: Bool + ,haveAio :: Bool + ,haveDio :: Bool + ,bytesMemory :: Int } \end{lstlisting} \todo{Explain specification, combine task and share space} diff --git a/theoretical-framework.tex b/theoretical-framework.tex deleted file mode 100644 index 59975f1..0000000 --- a/theoretical-framework.tex +++ /dev/null @@ -1,21 +0,0 @@ -\section{\acrlong{TOP}} - - -\begin{lstlisting}[language=Clean,label={lst:test},caption={Caption}] -module Life - -Start :: *World -> *World -Start w = w -\end{lstlisting} - -\gls{TOP} is a recent new programming paradigm implemented as -\gls{iTasks}~\cite{achten_introduction_2015} in -the pure lazy functional language \gls{Clean} - -\todo{Main terms} -The lazy functional programming language based on graph rewriting -\gls{Clean}~\cite{brus_cleanlanguage_1987} - -\section{\acrlong{DSL}s} - - -- 2.20.1