Increased minimum python version to 3.7 Updated readme. |
3 years ago | |
|---|---|---|
| .. | ||
| cyclo | 3 years ago | |
| eventrecorder | 3 years ago | |
| example1 | 3 years ago | |
| example2 | 3 years ago | |
| example3 | 3 years ago | |
| example4 | 3 years ago | |
| example5 | 3 years ago | |
| example6 | 3 years ago | |
| example7 | 3 years ago | |
| example8 | 3 years ago | |
| example9 | 3 years ago | |
| example10 | 3 years ago | |
| simple | 3 years ago | |
| simpledsp | 3 years ago | |
| CMakeLists.txt | 3 years ago | |
| README.md | 3 years ago | |
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
Duplicatenodes 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