adapt to new iTasks layout
[mTask.git] / README.md
1 # mTask
2
3 ### Introduction
4 *mTasks* are small imperative tasks that can be run on an embedded device like
5 arduino/ESPxxx/Nucleo arm boards. They are communicated to the device in
6 bytecode which is interpreted by the engine that has to be programmed on the
7 device.
8
9 The devices suitable for *mTasks* are not limited to embedded devices. In the
10 `int` folder is a `C` reference implementation available for intel machines.
11
12 *mTasks* are written in [clean][clean] and specifically using the
13 [iTasks][itasks] library.
14
15 ### How to setup the iTask system
16 Get the latest iTask and run Make. Make sure to have `gcc-5`.
17
18 ### How to setup the interpreter
19 For the linux version install `gcc` and run `make -f Makefile.linux` in the
20 `./int` directory
21
22 For the STM version install `gcc-arm-none-eabi` and run `make` in the `./int`
23 directory. To flash the binary to the device install (a recent version of)
24 `openocd` and run `make flash` in the `./int` directory.
25
26 ### Protocol
27 The server can send task specifications to the microcontroller by sending:
28 | id | length
29 | 's' | n | n bytes | newline
30
31 Where n is a 16bit integer.
32
33 ### Author(s)
34 Initial work has been done by Pieter Koopman. Extensions have been made by Mart
35 Lubbers.
36
37 [clean]: clean.cs.ru.nl
38 [itasks]: clean.cs.ru.nl/ITasks