For example, the atmega328p in the \gls{ARDUINO} UNO is rated for 10000 write cycles.
While this sounds like a lot, if new tasks are sent to the device every minute or so, a lifetime of not even seven days is guaranteed.
Hence, for dynamic applications, generating code at run-time for interpretation on the device is necessary.
-This byte code is then interpreted on MCUs with very little memory and processing power and thus save precious write cycles of the program memory.
+This byte code is then interpreted on microcontrollers with very little memory and processing power and thus save precious write cycles of the program memory.
precious write cycles of the program memory.
In order to provide the device with the tools to interpret the byte code, it is programmed with a \gls{RTS}, a customisable domain-specific \gls{OS} that takes care of the execution of tasks but also low-level mechanisms such as the communication, multi tasking, and memory management.
\todo{plaa\-tje van me\-mo\-ry hier}
\todo{pseu\-do\-code hier van de ex\-e\-cu\-tie}
+\subsection{C code generation}
+
%TODO evt subsubsections verwijderen
\subsection{Communication}
In the first phase, the communication channels are processed.