X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=results.mtask.tex;h=c32f7acf318e05ad9d6a03f3404b136458d6b089;hb=7694dfaa240c6dd9af2f1ac8880f0fb1d7f38324;hp=0c50555fb091083b655be25ba97b0e36ee5680b7;hpb=4c3c9734d91c19e41eb4424944247adad214d188;p=msc-thesis1617.git diff --git a/results.mtask.tex b/results.mtask.tex index 0c50555..c32f7ac 100644 --- a/results.mtask.tex +++ b/results.mtask.tex @@ -6,9 +6,24 @@ does not have to implement all the available classes. Moreover, classes can be added at will without interfering with the existing views. \section{Semantics} -\todo{semantics} - -\section{Bytecode compilation} +\subsection{\glspl{mTask}} +The current \gls{mTask} engine for devices does not support \glspl{Task} in the +sense that the \gls{C}-view it does. \glspl{Task} in the new system are are +\CI{Main} objects with a program inside. A \gls{Task} runs periodically, on +interrupt or one-shot. +\todo{elaborate} + +\subsection{\glspl{SDS}} +\glspl{SDS} behave a little bit differently on an \gls{mTask} device than in +the \gls{iTasks} system. In an \gls{iTasks} system, when the \gls{SDS} is +updated, a broadcast to everyone in the system watching is made to notify them +of an update. \glspl{SDS} on the device can update very often and the update +might not be the final value it will get. Therefore a device must publish the +\gls{SDS} explicitly to save bandwidth. This means that an extra function is +added to the \CI{sds} class that adds the \CI{pub} function. +\todo{elaborate} + +\section{Bytecode compilation}\label{sec:compiler} The \glspl{mTask} are sent to the device in bytecode and are saved in the memory of the device. To compile the \gls{EDSL} code to bytecode, a view is added to the \gls{mTask}-system called \CI{ByteCode}. As shown in @@ -271,3 +286,5 @@ position in the program memory. 17-19: BCPush (Bool 0) //Else label 20 : BCDigitalWrite (Digital D0) \end{lstlisting} + +\todo{add more elaborate example?}