Skip to content

Latest commit

 

History

History
65 lines (46 loc) · 3.59 KB

README.md

File metadata and controls

65 lines (46 loc) · 3.59 KB

How to build the examples

First, you must install the CMSIS-Stream package:

pip install cmsis-stream

The Python functions and classes inside the cmsis-stream package 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" \
   -DCMSISDSP="path to cmsis dsp" \
   -DHOST=YES \
   -G "Unix Makefiles" ..

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-stream package.

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
  • runtime_mode : This example shows how to change the graph at runtime without recompiling