NOTE: Development in this repo has moved to ssm-lang/ssm-runtime.
The Sparse Synchronous Model: A deterministic real-time execution technique that allows explicit, precise timing control.
An early version of this system is described in our FDL 2021 paper http://www.cs.columbia.edu/~sedwards/papers/edwards2020sparse.pdf. The artifact accompanying that paper may be found here.
Documentation: http://sedwards-lab.github.io/ssm-doc
To build and test the runtime system on your host,
make
To run the examples on embedded hardware,
-
Install the PlatformIO Core (CLI) build system from https://platformio.org/
-
Under Linux, you may need to install the
99-platformio-udev.rulesfile to enable permissions to access your debugging probe. See https://docs.platformio.org/en/latest/faq.html#platformio-udev-rules -
cd into, e.g., examples/blink-platformio-zephyr
-
E.g., for the Nordic nrf82840 discovery kit,
pio run --environment nrf52840_dk --target upload --target monitorwill compile, upload, and display the serial output of the example. The monitor target is optional. See theplatformio.inifile for details about other targets.Note that PlatformIO will download and compile a separate copy of this (ssm runtime) library from github, not the one a few directories above the examples. `