Reinhard Keil 80bf36c676 Enhanced comments in 'graph.py' of example simpledsp (#103) 2 ani în urmă
..
cyclo 4806c7f01d Streamdoc (#94) 3 ani în urmă
eventrecorder 57c7ff6670 Updated examples 3 ani în urmă
example1 4806c7f01d Streamdoc (#94) 3 ani în urmă
example10 4806c7f01d Streamdoc (#94) 3 ani în urmă
example2 4806c7f01d Streamdoc (#94) 3 ani în urmă
example3 3a04f817a4 Improvement to Python wrapper 3 ani în urmă
example4 4806c7f01d Streamdoc (#94) 3 ani în urmă
example5 4806c7f01d Streamdoc (#94) 3 ani în urmă
example6 4806c7f01d Streamdoc (#94) 3 ani în urmă
example7 4806c7f01d Streamdoc (#94) 3 ani în urmă
example8 e8d1f3a10c Python wrapper update 3 ani în urmă
example9 4806c7f01d Streamdoc (#94) 3 ani în urmă
simple e8d1f3a10c Python wrapper update 3 ani în urmă
simpledsp 80bf36c676 Enhanced comments in 'graph.py' of example simpledsp (#103) 2 ani în urmă
CMakeLists.txt 61478be82a Added event recorder example and documentation for the compute graph. 3 ani în urmă
README.md 61478be82a Added event recorder example and documentation for the compute graph. 3 ani în urmă

README.md

How to build the examples

First, you must install the CMSIS-DSP PythonWrapper:

pip install cmsisdsp

The functions and classes inside the cmsisdsp wrapper can be used to describe and generate the schedule.

You need a recent Graphviz dot tool supporting the HTML-like labels. You'll need cmake and make

In folder ComputeGraph/example/build, type the cmake command:

cmake -DHOST=YES \
   -DDOT="path to dot.EXE" \
   -DCMSISCORE="path to cmsis core include directory" \
   -G "Unix Makefiles" ..

The core include directory is something like CMSIS_5/Core ...

If cmake is successful, you can type make to build the examples. It will also build CMSIS-DSP for the host.

If you don't have graphviz, the option -DDOT can be removed.

If for some reason it does not work, you can go into an example folder (for instance example1), and type the commands:

python graph.py 
dot -Tpdf -o test.pdf test.dot

It will generate the C++ files for the schedule and a pdf representation of the graph.

Note that the Python code is relying on the CMSIS-DSP PythonWrapper which is now also containing the Python scripts for the Synchronous Data Flow.

For example3 which is using an input file, cmake should have copied the input test pattern input_example3.txt inside the build folder. The output file will also be generated in the build folder.

example4 is like example3 but in pure Python and using the CMSIS-DSP Python wrapper (which must already be installed before trying the example). To run a Python example, you need to go into an example folder and type:

python main.py

example7 is communicating with OpenModelica. You need to install the VHTModelica blocks from the AVH-SystemModeling project on our GitHub

List of examples

  • Simple example without CMSIS-DSP : How to get started
  • Simple example with CMSIS-DSP : How to get started with CMSIS-DSP
  • Example 1 : Same as the simple example but explaining how to add arguments to the scheduler API and node constructors. This example is also giving a detailed explanation of the C++ code generated for the scheduler
  • Example 2 : Explain how to use CMSIS-DSP pure functions (no state) and add delay on the arcs of the graph. Explain some configuration options for the schedule generation.
  • Example 3 : A full signal processing example with CMSIS-DSP using FFT and sliding windows and overlap and add node
  • Example 4 : Same as example 3 but where we generate a Python implementation rather than a C++ implementation. The resulting graph can be executed thanks to the CMSIS-DSP Python wrapper
  • Example 5 : Another pure Python example showing how to compute a sequence of Q15 MFCC and generate an animation (using also the CMSIS-DSP Python wrapper)
  • Example 6 : Same as example 5 but with C++ code generation
  • Example 7 : Pure Python example demonstrating a communication between the compute graph and OpenModelica to generate a Larsen effect
  • Example 8 : Introduce structured datatype for the samples and implicit Duplicate nodes for the graph
  • Example 9 : Check that duplicate nodes and arc delays are working together and a scheduling is generated
  • Example 10 : The dynamic dataflow mode
  • Cyclo-static scheduling
  • Simple example with the event recorder