X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=top%2F4iot.tex;fp=top%2F4iot.tex;h=10457ba61f95a88a616c5e6e88bac20ffd58f1e9;hb=3369704052f2381076b72efb24d57a943172e729;hp=dc6b6dcd6ae5fdf568aabaeff3fdeea3e1d6cd4e;hpb=4e17593a20e8c3af4c82a0b14bc648ddc180c25d;p=phd-thesis.git diff --git a/top/4iot.tex b/top/4iot.tex index dc6b6dc..10457ba 100644 --- a/top/4iot.tex +++ b/top/4iot.tex @@ -19,7 +19,7 @@ \end{itemize} \end{chapterabstract} -The edge layer of \gls{IOT} system mostly consists of microcontrollers. +The edge layer of \gls{IOT} systems predominantly contains of microcontrollers. Microcontrollers are tiny computers designed specifically for embedded applications. They therefore only have a soup\c{c}on of memory, have a slow processor, come with many energy efficient sleep modes and have a lot of peripheral support such as \gls{GPIO} pins. Usually, programming microcontrollers requires an elaborate multi-step toolchain of compilation, linkage, binary image creation, and burning this image onto the flash memory of the microcontroller in order to compile and run a program. @@ -44,7 +44,8 @@ The programs are usually cyclic executives instead of tasks running in an operat \end{tabular} \end{table} -Each type of microcontrollers comes with vendor-provided drivers, compilers and \glspl{RTS} but there are many platform that abstract away from this such as \gls{MBED} and \gls{ARDUINO} of which \gls{ARDUINO} is specifically designed for education and prototyping and hence used here. +Different models of microcontrollers require their own vendor-provided drivers, hardware abstraction layer, compilers and \glspl{RTS}. +There are many platforms that abstract away from this such as \gls{MBED} and \gls{ARDUINO} of which \gls{ARDUINO} is specifically designed for education and prototyping and hence used here. The popular \gls{ARDUINO} \gls{C}\slash\gls{CPP} dialect and accompanying libraries provide an abstraction layer for common microcontroller behaviour allowing the programmer to program multiple types of microcontrollers using a single language. Originally it was designed for the in-house developed open-source hardware with the same name but the setup allows porting to many architectures. It provides an \gls{IDE} and toolchain automation to perform all steps of the toolchain with a single command. @@ -90,8 +91,7 @@ void loop() { delay(500); digitalWrite(D2, LOW); delay(500); -} - \end{lstArduino} +}\end{lstArduino} \end{subfigure}% \begin{subfigure}[b]{.5\linewidth} \begin{lstClean}[caption={Blink program.},label={lst:blinkImp}] @@ -104,8 +104,7 @@ blink = >>|. writeD d2 false >>|. delay (lit 500) ) -} - \end{lstClean} +}\end{lstClean} \end{subfigure} \end{figure} @@ -191,9 +190,9 @@ blinktask = % VimTeX: SynIgnore off \section{Conclusion} -The edge layer of \gls{IOT} systems are powered by microcontrollers. -Programming them happens through compiled firmwares using low-level imperative programming languages and do usually not come with an \gls{OS}. -Consequently, writing applications that perform multiple tasks at the same time is error prone, and complex; and requires a lot of boilerplate and manual scheduling code. +The edge layer of \gls{IOT} systems is powered by microcontrollers. +Programming them happens through compiled firmwares using low-level imperative programming languages. +Due to the lack of an \gls{OS}, writing applications that perform multiple tasks at the same time is error prone, and complex; and requires a lot of boilerplate and manual scheduling code. With the \gls{MTASK} system, a \gls{TOP} programming language for \gls{IOT} edge devices, this limitation can be overcome. \todo{uit\-breiden} @@ -238,7 +237,7 @@ An existing smart campus application was developed using \gls{MTASK} and quantit This research was later extended to include a four-way comparison: \gls{PYTHON}, \gls{MICROPYTHON}, \gls{ITASK}, and \gls{MTASK} \citep{lubbers_could_2022}. Currently, power efficiency behaviour of traditional versus \gls{TOP} \gls{IOT} stacks is being compared as well adding a \gls{FREERTOS} implementation to the mix as well. -\subsection*{Future} +\subsection*{Future work} Plans for extensions and improvements include exploring integrating \gls{TINYML} into \gls{MTASK}; adding intermittent computing support to \gls{MTASK}; and extending the formal semantics to cover the entirety of the language. In 2023, the SusTrainable summer school in Coimbra, Portugal will host a course on \gls{MTASK} as well.