X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=README.md;h=0c4f2a87787a0305df0457e89cbcef3555ffde45;hb=ff7049a99f7fdd701d49222019df65a9aee8f05a;hp=3872733ebd1122d22eb9dd9a53eeb9a0cb2622c0;hpb=f63e9891ef344e992a8a837cd3301ba3209f1e5c;p=mTask.git diff --git a/README.md b/README.md index 3872733..0c4f2a8 100644 --- a/README.md +++ b/README.md @@ -7,53 +7,35 @@ bytecode which is interpreted by the engine that has to be programmed on the device. The devices suitable for *mTasks* are not limited to embedded devices. In the -`int` folder is a `C` reference implementation available for intel machines. +`client` folder is a `C` reference implementation available for intel machines. -*mTasks* are written in [clean][clean] and specifically using the -[iTasks][itasks] library. +*mTasks* are written in [clean][clean] and specifically using the TOP +implementation DSL [iTasks][itasks]. -### Workings of an *mTask* system -*mTasks* are routines that are executed in a round robin fashion +### How to setup the server +Install clean by running: +``` +./install_clean.sh +``` -### Communication back to the server via shared data sources -When a shared data source is updated the *mTask* can publish this data back to -the server. This is usefull when for example a temperature reaches a certain -threshhold. How this communication will be done is yet to be researched. -**TODO** +Build the tools by running `make` -### Usage -All programs can be built by running `make`. Note that you need the latest -`clm` version if you want to use the `Makefile` since hierarchical modules are -used. This version can be found [here][clm]. +### How to setup the interpreters +For the linux version install `gcc` and run `make -C client -f Makefile.linux`. -The following programs are available as of now: -- `mTaskExamples` +For the STM version install `gcc-arm-none-eabi` and run `make -C client`. +To flash the binary to the device install (a recent version of) +`openocd` and run `make -C client flash`. - This compiles a list of mTask examples to `C` code. - -- `mTaskMakeSymbols` - - This creates the `mTaskSymbols.h` header file - -- `mTaskInterpret` - - This compiles a subset of *mTasks* to bytecode. - -### Protocol -The server can send task specifications to the microcontroller by sending: -| id | length -| 's' | n | n bytes | newline - -Where n is a 16bit integer. - -### Bytecode operations -The header file for the interpreter with the corresponding bytevalues can be -generated by running `mTaskMakeSymbols`. +### Thesis +The thesis accompanying this material can be found [here][thesis] and the +sources [here][sources] ### Author(s) -Initial work has been done by Pieter Koopman. Extensions have been made by Mart -Lubbers. +Initial work on the DSL have been done by Pieter Koopman. Further extensions +have been made by Mart Lubbers. -[clm]: https://svn.cs.ru.nl/repos/clean-tools/trunk/clm +[sources]: https://files.martlubbers.net/msc-thesis1617://git.martlubbers.net/?p=msc-thesis1617.git;a=summary +[thesis]: https://files.martlubbers.net/msc-thesis1617/ [clean]: clean.cs.ru.nl [itasks]: clean.cs.ru.nl/ITasks