Skip to content

ARM-software/CMSIS-Stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMSIS-Stream

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:

SDF_doc

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.

License Terms

CMSIS-Stream is licensed under Apache License 2.0.

Table of contents

  1. How to get started

    1. Simple graph creation example
  2. How to write the Python script and the C++ wrappers

    1. How to describe the graph in Python
    2. How to write the C++ wrappers to use your functions in the graph
    3. DSP Nodes for working with CMSIS-DSP
    4. Details about the generated C++ scheduler
  3. API Details

  4. Extensions