CMSIS-Stream is a Python package and small set of C++ headers that can be used on embedded devices to process streams of samples with :
- low memory usage
- minimal overhead
- deterministic scheduling
- modular design
- graphical representation
CMSIS-Stream makes it easier to build streaming solutions by connecting components into a graph and computing a scheduling of this graph at build time with several memory optimizations.
Stream of samples are processed by this graph as illustrated on the following animation:
Python is used to:
-
Describe the graph
-
Generate a static scheduling of this graph that is computed at build time with several memory optimizations.
-
Generate the code for this scheduler as a simple C++ file (with a C API).
- The scheduler can be run on bare metal devices. There is no dependencies to any RTOS. The scheduler is a sequence of function calls
-
Generate a graphical representation of the graph
C++ is only used for strong types and static typing (template). The only part of the C++ library that is used is the memory allocator to create the objects.
CMSIS-Stream is licensed under Apache License 2.0.