├── .gitignore ├── .vscode └── settings.json ├── Documentation ├── Async.md ├── Buffer.md ├── CCodeGen.md ├── CPPNodes.md ├── CPPSDS.md ├── CodegenOptions.md ├── CycloStatic.md ├── FAQ.md ├── Generic.md ├── Graph.md ├── GraphvizGen.md ├── Integration.md ├── MATHS.md ├── Memory.md ├── PythonAPI.md ├── PythonGen.md ├── PythonNodes.md ├── PythonSDS.md ├── SchedOptions.md ├── Styling.md ├── WriteCPP.md ├── WritePython.md ├── YAML.md └── assets │ ├── SDF_doc.gif │ ├── async_topological1.png │ ├── async_topological2.png │ ├── async_topological3.png │ ├── big_graph.png │ ├── buffer.png │ ├── dynamic.png │ ├── fifos.png │ ├── graph_math1.png │ ├── inter.png │ ├── math-matrix1.png │ ├── memory.png │ ├── perf.png │ ├── pre_schedule.png │ ├── schedule.png │ ├── shared_buffer.png │ ├── static.png │ ├── styling │ ├── feature_arrow_size.png │ ├── feature_edge_color.png │ ├── feature_edge_label_color.png │ ├── feature_edge_label_size.png │ ├── feature_edge_style.png │ ├── feature_func_const_border.png │ ├── feature_func_const_boundary_color.png │ ├── feature_func_const_color.png │ ├── feature_func_const_edge_color.png │ ├── feature_func_const_edge_style.png │ ├── feature_func_const_label_color.png │ ├── feature_func_const_label_size.png │ ├── feature_func_delay_border.png │ ├── feature_func_delay_boundary_color.png │ ├── feature_func_delay_color.png │ ├── feature_func_delay_edge_color.png │ ├── feature_func_delay_edge_style.png │ ├── feature_func_delay_label_color.png │ ├── feature_func_delay_label_size.png │ ├── feature_func_edge_color.png │ ├── feature_func_edge_label.png │ ├── feature_func_edge_label_color.png │ ├── feature_func_edge_label_size.png │ ├── feature_func_edge_style.png │ ├── feature_func_node_boundary_color.png │ ├── feature_func_node_color.png │ ├── feature_func_node_label.png │ ├── feature_func_node_label_color.png │ ├── feature_func_node_label_size.png │ ├── feature_func_port_font_color.png │ ├── feature_func_port_font_size.png │ ├── feature_func_port_sample_color.png │ ├── feature_func_port_sample_font_size.png │ ├── feature_graph_background.png │ ├── feature_graph_font.png │ ├── feature_node_boundary_color.png │ ├── feature_node_color.png │ ├── feature_node_label_color.png │ ├── feature_node_label_size.png │ ├── feature_port_font_color.png │ ├── feature_port_font_size.png │ ├── feature_port_sample_color.png │ ├── feature_port_sample_font_size.png │ └── feature_special_node_border.png │ └── supported_configs.png ├── Examples ├── CMakeLists.txt ├── README.md ├── buffer │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── GenericNodes.h │ ├── Makefile.linux │ ├── Makefile.mac │ ├── Makefile.windows │ ├── README.md │ ├── cg_status.h │ ├── config.yml │ ├── constraint_config1.yml │ ├── constraint_config10.yml │ ├── constraint_config11.yml │ ├── constraint_config12.yml │ ├── constraint_config13.yml │ ├── constraint_config2.yml │ ├── constraint_config3.yml │ ├── constraint_config5.yml │ ├── constraint_config6.yml │ ├── constraint_config7.yml │ ├── constraint_config8.yml │ ├── constraint_config9.yml │ ├── constraint_config_b1.yml │ ├── constraint_config_b10.yml │ ├── constraint_config_b11.yml │ ├── constraint_config_b12.yml │ ├── constraint_config_b13.yml │ ├── constraint_config_b2.yml │ ├── constraint_config_b3.yml │ ├── constraint_config_b5.yml │ ├── constraint_config_b6.yml │ ├── constraint_config_b7.yml │ ├── constraint_config_b8.yml │ ├── constraint_config_b9.yml │ ├── constraint_graph_1.yml │ ├── constraint_graph_10.yml │ ├── constraint_graph_11.yml │ ├── constraint_graph_12.yml │ ├── constraint_graph_13.yml │ ├── constraint_graph_2.yml │ ├── constraint_graph_3.yml │ ├── constraint_graph_5.yml │ ├── constraint_graph_6.yml │ ├── constraint_graph_7.yml │ ├── constraint_graph_8.yml │ ├── constraint_graph_9.yml │ ├── constraint_graph_b_1.yml │ ├── constraint_graph_b_10.yml │ ├── constraint_graph_b_11.yml │ ├── constraint_graph_b_12.yml │ ├── constraint_graph_b_13.yml │ ├── constraint_graph_b_2.yml │ ├── constraint_graph_b_3.yml │ ├── constraint_graph_b_5.yml │ ├── constraint_graph_b_6.yml │ ├── constraint_graph_b_7.yml │ ├── constraint_graph_b_8.yml │ ├── constraint_graph_b_9.yml │ ├── constraint_test.py │ ├── create.py │ ├── custom.h │ ├── cv_scheduler1.cpp │ ├── cv_scheduler1.h │ ├── cv_scheduler10.cpp │ ├── cv_scheduler10.h │ ├── cv_scheduler11.cpp │ ├── cv_scheduler11.h │ ├── cv_scheduler12.cpp │ ├── cv_scheduler12.h │ ├── cv_scheduler2.cpp │ ├── cv_scheduler2.h │ ├── cv_scheduler3.cpp │ ├── cv_scheduler3.h │ ├── cv_scheduler5.cpp │ ├── cv_scheduler5.h │ ├── cv_scheduler7.cpp │ ├── cv_scheduler7.h │ ├── cv_scheduler8.cpp │ ├── cv_scheduler8.h │ ├── docassets │ │ └── simple.png │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_simple.dot │ ├── pre_schedule_simple.pdf │ ├── scheduler.cpp │ ├── scheduler.h │ ├── simple │ ├── simple.dot │ ├── simple.pdf │ └── simple.png ├── build │ ├── create.bat │ └── create.sh ├── callback │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── GenericNodes.h │ ├── Makefile.linux │ ├── Makefile.mac │ ├── Makefile.windows │ ├── README.md │ ├── callback.dot │ ├── callback.pdf │ ├── cg_status.h │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── docassets │ │ ├── callback.png │ │ └── simple.png │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_callback.dot │ ├── pre_schedule_callback.pdf │ ├── scheduler.cpp │ ├── scheduler.h │ └── simple ├── customfifo │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── GenericNodes.h │ ├── Makefile.linux │ ├── Makefile.mac │ ├── Makefile.windows │ ├── README.md │ ├── cg_status.h │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── customfifo.dot │ ├── docassets │ │ └── simple.png │ ├── graph.py │ ├── graph.yml │ ├── graph2.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_customfifo.dot │ ├── pre_schedule_simple.dot │ ├── pre_schedule_simple.pdf │ ├── scheduler.cpp │ └── scheduler.h ├── cyclo │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── Makefile │ ├── README.md │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── cyclo.dot │ ├── cyclo.pdf │ ├── docassets │ │ └── cyclo.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_cyclo.dot │ └── pre_schedule_cyclo.pdf ├── eventrecorder │ ├── ARMCM55_FP_MVE_config.txt │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── EventRecorder.log │ ├── EventRecorderStub.scvd │ ├── GetEvent_cs300.bat │ ├── README.md │ ├── RTE │ │ ├── CMSIS │ │ │ ├── RTX_Config.c │ │ │ ├── RTX_Config.c.base@5.1.1 │ │ │ ├── RTX_Config.h │ │ │ └── RTX_Config.h.base@5.5.2 │ │ ├── Compiler │ │ │ ├── EventRecorderConf.h │ │ │ └── EventRecorderConf.h.base@1.1.0 │ │ ├── Device │ │ │ └── SSE-300-MPS3 │ │ │ │ ├── RTE_Device.h │ │ │ │ ├── RTE_Device.h.base@1.1.0 │ │ │ │ ├── cmsis_driver_config.h │ │ │ │ ├── cmsis_driver_config.h.base@1.1.1 │ │ │ │ ├── device_cfg.h │ │ │ │ ├── device_cfg.h.base@1.1.3 │ │ │ │ ├── fvp_sse300_mps3_s.sct │ │ │ │ ├── fvp_sse300_mps3_s.sct.base@1.1.0 │ │ │ │ ├── platform_base_address.h │ │ │ │ ├── platform_base_address.h.base@1.1.2 │ │ │ │ ├── region_defs.h │ │ │ │ ├── region_defs.h.base@1.0.0 │ │ │ │ ├── region_limits.h │ │ │ │ ├── region_limits.h.base@1.0.0 │ │ │ │ ├── startup_fvp_sse300_mps3.c │ │ │ │ ├── startup_fvp_sse300_mps3.c.base@1.1.1 │ │ │ │ ├── system_SSE300MPS3.c │ │ │ │ ├── system_SSE300MPS3.c.base@1.1.1 │ │ │ │ ├── system_SSE300MPS3.h │ │ │ │ └── system_SSE300MPS3.h.base@1.1.1 │ │ ├── _IDE_VHT-Corstone-300 │ │ │ └── RTE_Components.h │ │ ├── _eventrecorder.CommandLine_VHT-Corstone-300 │ │ │ └── RTE_Components.h │ │ └── _eventrecorder.IDE_VHT-Corstone-300 │ │ │ └── RTE_Components.h │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── docassets │ │ ├── event_recorder.png │ │ ├── ide_events.PNG │ │ └── project.png │ ├── event_recorder.dot │ ├── eventrecorder.CommandLine+VHT-Corstone-300.cbuild.yml │ ├── eventrecorder.CommandLine+VHT-Corstone-300.cprj │ ├── eventrecorder.IDE+VHT-Corstone-300.cbuild.yml │ ├── eventrecorder.IDE+VHT-Corstone-300.cprj │ ├── eventrecorder.IDE+VHT-Corstone-300.uvguix.chrfav01 │ ├── eventrecorder.IDE+VHT-Corstone-300.uvoptx │ ├── eventrecorder.IDE+VHT-Corstone-300.uvprojx │ ├── eventrecorder.cproject.yml │ ├── events.txt │ ├── example.cbuild-idx.yml │ ├── example_ac6.csolution.yml │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_event_recorder.dot │ ├── run.bat │ └── vht.clayer.yml ├── example1 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph1.PNG │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── example10 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph10.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── example11 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph10.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── example12 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── config_dynamic.yml │ ├── config_static.yml │ ├── create.py │ ├── custom.h │ ├── docassets │ │ └── graph1.PNG │ ├── dynamic.dot │ ├── dynamic.pdf │ ├── dynamic │ │ ├── dynamic_scheduler.cpp │ │ └── dynamic_scheduler.h │ ├── dynamic_refcount.py │ ├── graph.yml │ ├── graph_dynamic.yml │ ├── graph_static.yml │ ├── main.cpp │ ├── pre_schedule_dynamic.dot │ ├── pre_schedule_dynamic.pdf │ ├── pre_schedule_static.dot │ ├── pre_schedule_static.pdf │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── static.dot │ ├── static.pdf │ ├── static │ │ ├── static_scheduler.cpp │ │ └── static_scheduler.h │ ├── static_refcount.py │ ├── test.dot │ └── test.pdf ├── example2 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph2.PNG │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── example3 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.cpp │ ├── custom.h │ ├── debug.py │ ├── docassets │ │ ├── graph3.PNG │ │ └── sine.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── input_example3.txt │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── example4_python │ ├── CMakeLists.txt │ ├── README.md │ ├── appnodes.py │ ├── config.yml │ ├── custom.py │ ├── docassets │ │ ├── graph4.png │ │ └── sine.png │ ├── graph.py │ ├── graph.yml │ ├── input_example3.txt │ ├── output_example3.txt │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── sched.py │ ├── test.dot │ └── test.pdf ├── example5_python │ ├── CMakeLists.txt │ ├── README.md │ ├── appnodes.py │ ├── config.yml │ ├── custom.py │ ├── docassets │ │ ├── graph5.png │ │ └── mfcc.png │ ├── dynamic_image.py │ ├── graph.py │ ├── graph.yml │ ├── mfcc.mp4 │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── sched.py │ ├── sharedconfig.py │ ├── test.dot │ ├── test.pdf │ └── test_stereo.wav ├── example6 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph6.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── input_example6.txt │ ├── main.cpp │ ├── mfccConfigData.c │ ├── mfccConfigData.h │ ├── mfccconfig.yaml │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── sharedconfig.py │ ├── test.dot │ └── test.pdf ├── example7_python │ ├── CMakeLists.txt │ ├── PythonTest.mo │ ├── README.md │ ├── appnodes.py │ ├── config.yml │ ├── custom.py │ ├── docassets │ │ ├── graph7.png │ │ ├── modelica.png │ │ └── waveoutput.png │ ├── graph.py │ ├── graph.yml │ ├── output.wav │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── sched.py │ ├── test.dot │ └── test.pdf ├── example8 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── appnodes.py │ ├── config.yml │ ├── custom.h │ ├── custom.py │ ├── docassets │ │ └── graph8.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── main.py │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── sched.py │ ├── test.dot │ └── test.pdf ├── example9 │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── custom.h │ ├── docassets │ │ └── graph9.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── test.dot │ └── test.pdf ├── functionexample │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── debug.py │ ├── function.dot │ ├── function.pdf │ ├── function.png │ ├── graph.py │ ├── graph.yml │ ├── nodes.py │ ├── pre_schedule_function.dot │ ├── scheduler.cpp │ └── scheduler.h ├── graphvizexample │ ├── CMakeLists.txt │ ├── config.yml │ ├── feature │ │ ├── feature_arrow_size.png │ │ ├── feature_edge_color.png │ │ ├── feature_edge_label_color.png │ │ ├── feature_edge_label_size.png │ │ ├── feature_edge_style.png │ │ ├── feature_func_const_border.png │ │ ├── feature_func_const_boundary_color.png │ │ ├── feature_func_const_color.png │ │ ├── feature_func_const_edge_color.png │ │ ├── feature_func_const_edge_style.png │ │ ├── feature_func_const_label_color.png │ │ ├── feature_func_const_label_size.png │ │ ├── feature_func_delay_border.png │ │ ├── feature_func_delay_boundary_color.png │ │ ├── feature_func_delay_color.png │ │ ├── feature_func_delay_edge_color.png │ │ ├── feature_func_delay_edge_style.png │ │ ├── feature_func_delay_label_color.png │ │ ├── feature_func_delay_label_size.png │ │ ├── feature_func_edge_color.png │ │ ├── feature_func_edge_label.png │ │ ├── feature_func_edge_label_color.png │ │ ├── feature_func_edge_label_size.png │ │ ├── feature_func_edge_style.png │ │ ├── feature_func_node_boundary_color.png │ │ ├── feature_func_node_color.png │ │ ├── feature_func_node_label.png │ │ ├── feature_func_node_label_color.png │ │ ├── feature_func_node_label_size.png │ │ ├── feature_func_port_font_color.png │ │ ├── feature_func_port_font_size.png │ │ ├── feature_func_port_sample_color.png │ │ ├── feature_func_port_sample_font_size.png │ │ ├── feature_graph_background.png │ │ ├── feature_graph_font.png │ │ ├── feature_node_boundary_color.png │ │ ├── feature_node_color.png │ │ ├── feature_node_label_color.png │ │ ├── feature_node_label_size.png │ │ ├── feature_port_font_color.png │ │ ├── feature_port_font_size.png │ │ ├── feature_port_sample_color.png │ │ ├── feature_port_sample_font_size.png │ │ ├── feature_special_node_border.png │ │ ├── pre_schedule_feature_arrow_size.png │ │ ├── pre_schedule_feature_edge_color.png │ │ ├── pre_schedule_feature_edge_label_color.png │ │ ├── pre_schedule_feature_edge_label_size.png │ │ ├── pre_schedule_feature_edge_style.png │ │ ├── pre_schedule_feature_func_const_border.png │ │ ├── pre_schedule_feature_func_const_boundary_color.png │ │ ├── pre_schedule_feature_func_const_color.png │ │ ├── pre_schedule_feature_func_const_edge_color.png │ │ ├── pre_schedule_feature_func_const_edge_style.png │ │ ├── pre_schedule_feature_func_const_label_color.png │ │ ├── pre_schedule_feature_func_const_label_size.png │ │ ├── pre_schedule_feature_func_delay_border.png │ │ ├── pre_schedule_feature_func_delay_boundary_color.png │ │ ├── pre_schedule_feature_func_delay_color.png │ │ ├── pre_schedule_feature_func_delay_edge_color.png │ │ ├── pre_schedule_feature_func_delay_edge_style.png │ │ ├── pre_schedule_feature_func_delay_label_color.png │ │ ├── pre_schedule_feature_func_delay_label_size.png │ │ ├── pre_schedule_feature_func_edge_color.png │ │ ├── pre_schedule_feature_func_edge_label.png │ │ ├── pre_schedule_feature_func_edge_label_color.png │ │ ├── pre_schedule_feature_func_edge_label_size.png │ │ ├── pre_schedule_feature_func_edge_style.png │ │ ├── pre_schedule_feature_func_node_boundary_color.png │ │ ├── pre_schedule_feature_func_node_color.png │ │ ├── pre_schedule_feature_func_node_label.png │ │ ├── pre_schedule_feature_func_node_label_color.png │ │ ├── pre_schedule_feature_func_node_label_size.png │ │ ├── pre_schedule_feature_func_port_font_color.png │ │ ├── pre_schedule_feature_func_port_font_size.png │ │ ├── pre_schedule_feature_func_port_sample_color.png │ │ ├── pre_schedule_feature_func_port_sample_font_size.png │ │ ├── pre_schedule_feature_graph_background.png │ │ ├── pre_schedule_feature_graph_font.png │ │ ├── pre_schedule_feature_node_boundary_color.png │ │ ├── pre_schedule_feature_node_color.png │ │ ├── pre_schedule_feature_node_label_color.png │ │ ├── pre_schedule_feature_node_label_size.png │ │ ├── pre_schedule_feature_port_font_color.png │ │ ├── pre_schedule_feature_port_font_size.png │ │ ├── pre_schedule_feature_port_sample_color.png │ │ ├── pre_schedule_feature_port_sample_font_size.png │ │ └── pre_schedule_feature_special_node_border.png │ ├── feature_test.py │ ├── gen_pict.bat │ ├── graph.py │ ├── graph.yml │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── pre_schedule_test.png │ ├── pre_schedule_test.svg │ ├── test.dot │ ├── test.pdf │ ├── test.png │ └── test.svg ├── runtime_mode │ ├── AppNodes.h │ ├── GenericRuntimeNodes.h │ ├── Makefile.linux │ ├── Makefile.mac │ ├── Makefile.windows │ ├── README.md │ ├── cg_status.h │ ├── cmsis_stream_writer │ │ ├── BufferDesc.py │ │ ├── FIFODesc.py │ │ ├── IODesc.py │ │ ├── Node.py │ │ ├── Schedule.py │ │ ├── UUID.py │ │ └── __init__.py │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── flatbuffers_1.23.2 │ │ ├── LICENSE.txt │ │ └── include │ │ │ └── flatbuffers │ │ │ ├── allocator.h │ │ │ ├── array.h │ │ │ ├── base.h │ │ │ ├── buffer.h │ │ │ ├── buffer_ref.h │ │ │ ├── default_allocator.h │ │ │ ├── detached_buffer.h │ │ │ ├── flatbuffer_builder.h │ │ │ ├── flatbuffers.h │ │ │ ├── flexbuffers.h │ │ │ ├── stl_emulation.h │ │ │ ├── string.h │ │ │ ├── struct.h │ │ │ ├── table.h │ │ │ ├── util.h │ │ │ ├── vector.h │ │ │ ├── vector_downward.h │ │ │ └── verifier.h │ ├── gen_flat.py │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_runtime_mode.dot │ ├── runtime_mode.dot │ ├── runtime_mode.svg │ ├── runtime_sched.cpp │ ├── runtime_sched.h │ ├── sched_flat.dat │ ├── stream.fbs │ └── stream_generated.h ├── simple │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── GenericNodes.h │ ├── Makefile.linux │ ├── Makefile.mac │ ├── Makefile.windows │ ├── README.md │ ├── cg_status.h │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── docassets │ │ └── simple.png │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_simple.dot │ ├── pre_schedule_simple.pdf │ ├── scheduler.cpp │ ├── scheduler.h │ ├── simple.dot │ ├── simple.pdf │ └── simple.png ├── simpledsp │ ├── AppNodes.h │ ├── CMakeLists.txt │ ├── README.md │ ├── config.yml │ ├── create.py │ ├── custom.h │ ├── docassets │ │ └── simpledsp.png │ ├── generated │ │ ├── scheduler.cpp │ │ └── scheduler.h │ ├── graph.py │ ├── graph.yml │ ├── main.cpp │ ├── nodes.py │ ├── pre_schedule_simpledsp.dot │ ├── pre_schedule_simpledsp.pdf │ ├── simpledsp.dot │ └── simpledsp.pdf └── yaml │ ├── CMakeLists.txt │ ├── config.yml │ ├── config2.yml │ ├── graph.py │ ├── graph.yml │ ├── graph2.yml │ ├── pre_schedule_test.dot │ ├── pre_schedule_test.pdf │ ├── scheduler.cpp │ ├── scheduler.h │ ├── test.dot │ └── test.pdf ├── Include └── cg │ ├── nodes │ ├── README.md │ └── cpp │ │ ├── CFFT.h │ │ ├── ICFFT.h │ │ ├── InterleavedStereoToMono.h │ │ ├── MFCC.h │ │ ├── NullSink.h │ │ ├── OverlapAndAdd.h │ │ ├── SlidingBuffer.h │ │ ├── ToComplex.h │ │ ├── ToReal.h │ │ ├── Unzip.h │ │ ├── Zip.h │ │ ├── host │ │ ├── FileSink.h │ │ └── FileSource.h │ │ └── sds │ │ ├── sds_cg_types.h │ │ ├── sds_recorder.hpp │ │ └── sds_sensor.hpp │ └── src │ ├── GenericNodes.h │ └── cg_status.h ├── LICENSE ├── PythonPackage ├── LICENSE.txt ├── MANIFEST.in ├── README.md ├── cmsis_stream │ ├── __init__.py │ ├── cg │ │ ├── __init__.py │ │ ├── nodes │ │ │ ├── CFFT.py │ │ │ ├── Duplicate.py │ │ │ ├── ICFFT.py │ │ │ ├── InterleavedStereoToMono.py │ │ │ ├── MFCC.py │ │ │ ├── NullSink.py │ │ │ ├── ToComplex.py │ │ │ ├── ToReal.py │ │ │ ├── Unzip.py │ │ │ ├── Zip.py │ │ │ ├── __init__.py │ │ │ ├── host │ │ │ │ ├── FileSink.py │ │ │ │ ├── FileSource.py │ │ │ │ ├── NumpySink.py │ │ │ │ ├── VHT.py │ │ │ │ ├── VHTCGSTATIC.py │ │ │ │ ├── WavSink.py │ │ │ │ ├── WavSource.py │ │ │ │ ├── __init__.py │ │ │ │ └── message.py │ │ │ └── simu.py │ │ ├── scheduler │ │ │ ├── __init__.py │ │ │ ├── args.py │ │ │ ├── ccode.py │ │ │ ├── config.py │ │ │ ├── description.py │ │ │ ├── example │ │ │ │ ├── ARMCM55_FP_MVE_config.txt │ │ │ │ ├── Makefile.linux │ │ │ │ ├── Makefile.mac │ │ │ │ ├── Makefile.windows │ │ │ │ ├── README.md │ │ │ │ ├── main_board.c │ │ │ │ ├── run.bat │ │ │ │ ├── simple.cproject.yml │ │ │ │ ├── simple_ac6.csolution.yml │ │ │ │ ├── start_project_appnodes.h │ │ │ │ ├── start_project_custom.h │ │ │ │ ├── start_project_graph.py │ │ │ │ ├── start_project_main.c │ │ │ │ └── vht.clayer.yml │ │ │ ├── graphviz.py │ │ │ ├── node.py │ │ │ ├── pythoncode.py │ │ │ ├── standard.py │ │ │ └── templates │ │ │ │ ├── GenericNodes.h │ │ │ │ ├── cg_status.h │ │ │ │ ├── cmsis.cpp │ │ │ │ ├── cmsis.py │ │ │ │ ├── cmsisCheck.cpp │ │ │ │ ├── code.cpp │ │ │ │ ├── code.h │ │ │ │ ├── code.py │ │ │ │ ├── codeSwitch.cpp │ │ │ │ ├── commonc.cpp │ │ │ │ ├── defineConfig.h │ │ │ │ ├── dot_template.dot │ │ │ │ └── precompute_dot_template.dot │ │ ├── sds │ │ │ ├── __init__.py │ │ │ └── sds_nodes.py │ │ ├── types.py │ │ └── yaml │ │ │ ├── __init__.py │ │ │ ├── exportyaml.py │ │ │ └── importyaml.py │ └── cmsis_stream.py ├── pyproject.toml ├── setup.py └── update_template.py ├── README.md ├── Tests ├── .gitignore ├── ARMCM55_FP_MVE_config.txt ├── AppNodes.h ├── BenchAppNodes.h ├── CMakeLists.txt ├── ComplexAppNodes.h ├── DuplicateAppNodes.h ├── EventRecorder.log ├── README.md ├── RTE │ ├── CMSIS │ │ ├── RTX_Config.c │ │ ├── RTX_Config.c.base@5.1.1 │ │ ├── RTX_Config.h │ │ └── RTX_Config.h.base@5.5.2 │ ├── Compiler │ │ ├── EventRecorderConf.h │ │ └── EventRecorderConf.h.base@1.1.0 │ ├── Device │ │ └── SSE-300-MPS3 │ │ │ ├── RTE_Device.h │ │ │ ├── RTE_Device.h.base@1.1.0 │ │ │ ├── cmsis_driver_config.h │ │ │ ├── cmsis_driver_config.h.base@1.1.1 │ │ │ ├── device_cfg.h │ │ │ ├── device_cfg.h.base@1.1.3 │ │ │ ├── fvp_sse300_mps3_s.sct │ │ │ ├── fvp_sse300_mps3_s.sct.base@1.1.0 │ │ │ ├── platform_base_address.h │ │ │ ├── platform_base_address.h.base@1.1.2 │ │ │ ├── region_defs.h │ │ │ ├── region_defs.h.base@1.0.0 │ │ │ ├── region_limits.h │ │ │ ├── region_limits.h.base@1.0.0 │ │ │ ├── startup_fvp_sse300_mps3.c │ │ │ ├── startup_fvp_sse300_mps3.c.base@1.1.1 │ │ │ ├── system_SSE300MPS3.c │ │ │ ├── system_SSE300MPS3.c.base@1.1.1 │ │ │ ├── system_SSE300MPS3.h │ │ │ └── system_SSE300MPS3.h.base@1.1.1 │ ├── _CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _asyncgraph.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _asyncgraph.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _eventrecorder.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _eventrecorder.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifo.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifo.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench_async.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench_async.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench_sync.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _fifobench_sync.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h │ ├── _syncgraph.CommandLine_VHT-Corstone-300 │ │ └── RTE_Components.h │ └── _syncgraph.IDE_VHT-Corstone-300 │ │ └── RTE_Components.h ├── async │ ├── scheduler.cpp │ └── scheduler.h ├── asyncgraph.CommandLine+VHT-Corstone-300.cbuild.yml ├── asyncgraph.CommandLine+VHT-Corstone-300.cprj ├── asyncgraph.IDE+VHT-Corstone-300.cbuild.yml ├── asyncgraph.IDE+VHT-Corstone-300.cprj ├── asyncgraph.cproject.yml ├── cg.clayer.yml ├── create_async.py ├── create_duplicate_sync.py ├── create_fifobench_async.py ├── create_fifobench_sync.py ├── create_sync.py ├── custom.h ├── custom_bench.cpp ├── custom_bench.h ├── dot │ ├── async.dot │ ├── duplicate_sync.dot │ ├── duplicate_sync.png │ ├── fifobench_async.dot │ ├── fifobench_sync.dot │ ├── fifobench_sync.png │ └── sync.dot ├── duplicate_sync │ ├── scheduler.cpp │ └── scheduler.h ├── example.cbuild-idx.yml ├── example_ac6.csolution.yml ├── fifo.CommandLine+VHT-Corstone-300.cbuild.yml ├── fifo.CommandLine+VHT-Corstone-300.cprj ├── fifo.IDE+VHT-Corstone-300.cbuild.yml ├── fifo.IDE+VHT-Corstone-300.cprj ├── fifo.cproject.yml ├── fifobench_async.CommandLine+VHT-Corstone-300.cbuild.yml ├── fifobench_async.CommandLine+VHT-Corstone-300.cprj ├── fifobench_async.IDE+VHT-Corstone-300.cbuild.yml ├── fifobench_async.IDE+VHT-Corstone-300.cprj ├── fifobench_async.cproject.yml ├── fifobench_async │ ├── scheduler.cpp │ └── scheduler.h ├── fifobench_sync.CommandLine+VHT-Corstone-300.cbuild.yml ├── fifobench_sync.CommandLine+VHT-Corstone-300.cprj ├── fifobench_sync.IDE+VHT-Corstone-300.cbuild.yml ├── fifobench_sync.IDE+VHT-Corstone-300.cprj ├── fifobench_sync.cproject.yml ├── fifobench_sync │ ├── scheduler.cpp │ └── scheduler.h ├── graph_bench_async.py ├── graph_bench_sync.py ├── graph_complex.py ├── graph_duplicate_sync.py ├── main.cpp ├── main_duplicate_sync.cpp ├── main_fifo.cpp ├── main_fifobench.cpp ├── nodes.py ├── nodes_bench.py ├── run_fifo.bat ├── run_fifobench_async.bat ├── run_fifobench_sync.bat ├── sync │ ├── scheduler.cpp │ └── scheduler.h ├── syncgraph.CommandLine+VHT-Corstone-300.cbuild.yml ├── syncgraph.CommandLine+VHT-Corstone-300.cprj ├── syncgraph.IDE+VHT-Corstone-300.cbuild.yml ├── syncgraph.IDE+VHT-Corstone-300.cprj ├── syncgraph.cproject.yml ├── timing.c └── vht.clayer.yml └── cg.scvd /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.configureOnOpen": false, 3 | "python.analysis.extraPaths": [ 4 | "./PythonPackage" 5 | ] 6 | } -------------------------------------------------------------------------------- /Documentation/PythonAPI.md: -------------------------------------------------------------------------------- 1 | # Python API 2 | 3 | When you describe a graph and generate a scheduler there are 4 mandatory steps and one optional one: 4 | 5 | * Describing the nodes 6 | * Adding the nodes to the graph 7 | * Computing the schedule 8 | * Generating the C++ and/or Python scheduler implementation 9 | * Optional : Generating a graphviz `.dot` file with the graphical representation of the graph 10 | 11 | 1. ## [Description of new nodes](Generic.md) 12 | 13 | 2. ## [Adding nodes to the graph](Graph.md) 14 | 15 | 3. ## [Schedule computation and generation](SchedOptions.md) 16 | 17 | 4. ## [SDS Nodes](PythonSDS.md) 18 | 19 | 5. ## Generation 20 | 21 | 1. #### [C++ Code generation](CCodeGen.md) 22 | 23 | 2. #### [Python code generation](PythonGen.md) 24 | 25 | 3. #### [Graphviz representation](GraphvizGen.md) 26 | 27 | 4. #### [Common options for all generators](CodegenOptions.md) 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Documentation/PythonNodes.md: -------------------------------------------------------------------------------- 1 | # Python Nodes and classes 2 | 3 | Python implementation of the nodes to be run from a Python scheduler. 4 | 5 | You don't need this if you're only working with C++ schedulers. 6 | 7 | (DOCUMENTATION TO BE WRITTEN) 8 | 9 | ## Mandatory classes 10 | 11 | FIFO 12 | 13 | GenericNode 14 | 15 | GenericNode12 16 | 17 | GenericNode13 18 | 19 | GenericNode21 20 | 21 | GenericSource 22 | 23 | GenericSink 24 | 25 | OverlapAdd 26 | 27 | SlidingBuffer 28 | 29 | ## Optional nodes 30 | 31 | CFFT 32 | 33 | CIFFT 34 | 35 | InterleavedStereoToMono 36 | 37 | MFCC 38 | 39 | NullSink 40 | 41 | ToComplex 42 | 43 | ToReal 44 | 45 | Unzip 46 | 47 | Zip 48 | 49 | Duplicate 50 | 51 | Duplicate2 52 | 53 | Duplicate3 54 | 55 | ### Host 56 | 57 | FileSink 58 | 59 | FileSource 60 | 61 | WavSource 62 | 63 | WavSink 64 | 65 | NumpySink 66 | 67 | VHTSource 68 | 69 | VHTSink -------------------------------------------------------------------------------- /Documentation/assets/SDF_doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/SDF_doc.gif -------------------------------------------------------------------------------- /Documentation/assets/async_topological1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/async_topological1.png -------------------------------------------------------------------------------- /Documentation/assets/async_topological2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/async_topological2.png -------------------------------------------------------------------------------- /Documentation/assets/async_topological3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/async_topological3.png -------------------------------------------------------------------------------- /Documentation/assets/big_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/big_graph.png -------------------------------------------------------------------------------- /Documentation/assets/buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/buffer.png -------------------------------------------------------------------------------- /Documentation/assets/dynamic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/dynamic.png -------------------------------------------------------------------------------- /Documentation/assets/fifos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/fifos.png -------------------------------------------------------------------------------- /Documentation/assets/graph_math1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/graph_math1.png -------------------------------------------------------------------------------- /Documentation/assets/inter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/inter.png -------------------------------------------------------------------------------- /Documentation/assets/math-matrix1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/math-matrix1.png -------------------------------------------------------------------------------- /Documentation/assets/memory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/memory.png -------------------------------------------------------------------------------- /Documentation/assets/perf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/perf.png -------------------------------------------------------------------------------- /Documentation/assets/pre_schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/pre_schedule.png -------------------------------------------------------------------------------- /Documentation/assets/schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/schedule.png -------------------------------------------------------------------------------- /Documentation/assets/shared_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/shared_buffer.png -------------------------------------------------------------------------------- /Documentation/assets/static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/static.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_arrow_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_arrow_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_edge_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_edge_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_edge_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_edge_style.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_border.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_boundary_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_edge_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_edge_style.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_const_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_const_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_border.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_boundary_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_edge_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_edge_style.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_delay_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_delay_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_edge_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_edge_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_edge_label.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_edge_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_edge_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_edge_style.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_node_boundary_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_node_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_node_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_node_label.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_node_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_node_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_port_font_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_port_font_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_port_sample_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_func_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_func_port_sample_font_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_graph_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_graph_background.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_graph_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_graph_font.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_node_boundary_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_node_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_node_label_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_node_label_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_port_font_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_port_font_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_port_sample_color.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_port_sample_font_size.png -------------------------------------------------------------------------------- /Documentation/assets/styling/feature_special_node_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/styling/feature_special_node_border.png -------------------------------------------------------------------------------- /Documentation/assets/supported_configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Documentation/assets/supported_configs.png -------------------------------------------------------------------------------- /Examples/buffer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Simple) 5 | 6 | 7 | add_executable(simple scheduler.cpp main.cpp) 8 | 9 | dotdependency(simple simple ON create.py) 10 | cppdependency(simple scheduler.cpp create.py) 11 | add_sdf_dir(simple) 12 | 13 | target_include_directories(simple PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | -------------------------------------------------------------------------------- /Examples/buffer/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main.cpp 9 | 10 | clean: 11 | rm -f ./simple 12 | -------------------------------------------------------------------------------- /Examples/buffer/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main.cpp 10 | 11 | clean: 12 | rm -f ./simple 13 | -------------------------------------------------------------------------------- /Examples/buffer/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fesimple.exe $(CFLAGS) ./scheduler.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) simple.ilk 17 | $(RM) simple.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/buffer/README.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | 4 | 5 | ``` 6 | Test 1 7 | Schedule length = 5 8 | Memory usage 20 bytes 9 | 10 | Test 2 11 | Schedule length = 5 12 | Memory usage 20 bytes 13 | 14 | Test 3 15 | Schedule length = 5 16 | Memory usage 20 bytes 17 | 18 | Test 4 19 | Detected BufferConstraintOnIOAreIncompatibles 20 | source -> processing1 21 | 22 | Test 5 23 | Detected CantHaveBufferConstraintOnFIFOWhenDuplicateIsInserted 24 | processing1 -> sink1 25 | 26 | Test 6 27 | Detected FIFOWithCustomBufferMustBeUsedAsArray 28 | source -> processing1 29 | 30 | Test 7 31 | Schedule length = 27 32 | Memory usage 60 bytes 33 | 34 | Test 8 35 | Schedule length = 3 36 | Memory usage 0 bytes 37 | 38 | Test 9 39 | Detected CannotReuseCustomBufferMoreThanOnce 40 | custom buffer: Test 41 | ``` 42 | 43 | -------------------------------------------------------------------------------- /Examples/buffer/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: 11 | - uint8_t *myBuffer 12 | - uint8_t *myBufferB 13 | 14 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config1.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: 11 | - uint8_t *myBuffer 12 | - uint8_t *myBufferB 13 | scheduler-c-file-name: cv_scheduler1 14 | 15 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config10.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler10 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config11.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler11 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config12.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler12 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config13.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler10 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config2.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler2 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config3.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler3 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config5.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler5 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config6.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler6 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config7.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler7 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config8.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler8 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config9.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler9 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b1.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: 11 | - uint8_t *myBuffer 12 | - uint8_t *myBufferB 13 | scheduler-c-file-name: cv_scheduler1 14 | 15 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b10.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler10 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b11.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler11 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b12.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler12 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b13.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler10 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b2.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler2 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b3.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler3 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b5.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler5 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b6.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler6 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b7.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler7 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b8.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler8 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_config_b9.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | mem-strategy: independent_set 5 | buffer-allocation: true 6 | code-generation-options: 7 | debug-limit: 1 8 | fifo-prefix: cv 9 | c-code-generation-options: 10 | c-optional-args: "uint8_t *myBuffer,\n uint8_t *myBufferB" 11 | scheduler-c-file-name: cv_scheduler9 12 | 13 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_10.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC3 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: false 14 | assigned-by-node: false 15 | can-be-shared: true 16 | - node: sink1 17 | identified: true 18 | kind: Sink 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | args: 24 | - literal: sink1 25 | - node: sink2 26 | identified: true 27 | kind: Sink 28 | inputs: 29 | - input: i 30 | samples: 5 31 | type: float 32 | args: 33 | - literal: sink2 34 | edges: 35 | - src: 36 | node: source 37 | output: o 38 | dst: 39 | node: sink1 40 | input: i 41 | - src: 42 | node: source 43 | output: o 44 | dst: 45 | node: sink2 46 | input: i 47 | 48 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_11.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC2 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: true 14 | assigned-by-node: false 15 | can-be-shared: false 16 | - node: sink1 17 | identified: true 18 | kind: Sink 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | args: 24 | - literal: sink1 25 | - node: sink2 26 | identified: true 27 | kind: Sink 28 | inputs: 29 | - input: i 30 | samples: 5 31 | type: float 32 | args: 33 | - literal: sink2 34 | edges: 35 | - src: 36 | node: source 37 | output: o 38 | dst: 39 | node: sink1 40 | input: i 41 | - src: 42 | node: source 43 | output: o 44 | dst: 45 | node: sink2 46 | input: i 47 | 48 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_12.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC3 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: false 14 | assigned-by-node: false 15 | can-be-shared: true 16 | - node: sink 17 | identified: true 18 | kind: SinkC 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | buffer-constraint: 24 | name: Test 25 | must-be-array: false 26 | assigned-by-node: false 27 | can-be-shared: true 28 | args: 29 | - literal: sink 30 | edges: 31 | - src: 32 | node: source 33 | output: o 34 | dst: 35 | node: sink 36 | input: i 37 | 38 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_b_10.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC3 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: false 14 | assigned-by-node: false 15 | can-be-shared: true 16 | - node: sink1 17 | identified: true 18 | kind: Sink 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | args: 24 | - literal: sink1 25 | - node: sink2 26 | identified: true 27 | kind: Sink 28 | inputs: 29 | - input: i 30 | samples: 5 31 | type: float 32 | args: 33 | - literal: sink2 34 | edges: 35 | - src: 36 | node: source 37 | output: o 38 | dst: 39 | node: sink1 40 | input: i 41 | - src: 42 | node: source 43 | output: o 44 | dst: 45 | node: sink2 46 | input: i 47 | 48 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_b_11.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC2 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: true 14 | assigned-by-node: false 15 | can-be-shared: false 16 | - node: sink1 17 | identified: true 18 | kind: Sink 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | args: 24 | - literal: sink1 25 | - node: sink2 26 | identified: true 27 | kind: Sink 28 | inputs: 29 | - input: i 30 | samples: 5 31 | type: float 32 | args: 33 | - literal: sink2 34 | edges: 35 | - src: 36 | node: source 37 | output: o 38 | dst: 39 | node: sink1 40 | input: i 41 | - src: 42 | node: source 43 | output: o 44 | dst: 45 | node: sink2 46 | input: i 47 | 48 | -------------------------------------------------------------------------------- /Examples/buffer/constraint_graph_b_12.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: SourceC3 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | buffer-constraint: 12 | name: Test 13 | must-be-array: false 14 | assigned-by-node: false 15 | can-be-shared: true 16 | - node: sink 17 | identified: true 18 | kind: SinkC 19 | inputs: 20 | - input: i 21 | samples: 5 22 | type: float 23 | buffer-constraint: 24 | name: Test 25 | must-be-array: false 26 | assigned-by-node: false 27 | can-be-shared: true 28 | args: 29 | - literal: sink 30 | edges: 31 | - src: 32 | node: source 33 | output: o 34 | dst: 35 | node: sink 36 | input: i 37 | 38 | -------------------------------------------------------------------------------- /Examples/buffer/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler1.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER1_H_ 11 | #define _CV_SCHEDULER1_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler10.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER10_H_ 11 | #define _CV_SCHEDULER10_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler11.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER11_H_ 11 | #define _CV_SCHEDULER11_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler12.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER12_H_ 11 | #define _CV_SCHEDULER12_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler2.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER2_H_ 11 | #define _CV_SCHEDULER2_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler3.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER3_H_ 11 | #define _CV_SCHEDULER3_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler5.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER5_H_ 11 | #define _CV_SCHEDULER5_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler7.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER7_H_ 11 | #define _CV_SCHEDULER7_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/cv_scheduler8.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _CV_SCHEDULER8_H_ 11 | #define _CV_SCHEDULER8_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern int init_buffer_scheduler(uint8_t *myBuffer, 21 | uint8_t *myBufferB); 22 | extern void free_buffer_scheduler(uint8_t *myBuffer, 23 | uint8_t *myBufferB); 24 | 25 | 26 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 27 | uint8_t *myBufferB); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /Examples/buffer/docassets/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/buffer/docassets/simple.png -------------------------------------------------------------------------------- /Examples/buffer/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | static uint8_t myBuffer[20]; 6 | static uint8_t myBufferB[20]; 7 | 8 | int main(int argc, char const *argv[]) 9 | { 10 | int error; 11 | printf("Start\n"); 12 | error = init_buffer_scheduler(myBuffer,myBufferB); 13 | if (error != 0) 14 | { 15 | printf("Error allocating buffers\r\n"); 16 | } 17 | uint32_t nbSched=scheduler(&error,myBuffer,myBufferB); 18 | free_buffer_scheduler(myBuffer,myBufferB); 19 | return 0; 20 | } -------------------------------------------------------------------------------- /Examples/buffer/pre_schedule_simple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/buffer/pre_schedule_simple.pdf -------------------------------------------------------------------------------- /Examples/buffer/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | extern int init_buffer_scheduler(uint8_t *myBuffer, 22 | uint8_t *myBufferB); 23 | extern void free_buffer_scheduler(uint8_t *myBuffer, 24 | uint8_t *myBufferB); 25 | 26 | 27 | extern uint32_t scheduler(int *error,uint8_t *myBuffer, 28 | uint8_t *myBufferB); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /Examples/buffer/simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/buffer/simple -------------------------------------------------------------------------------- /Examples/buffer/simple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/buffer/simple.pdf -------------------------------------------------------------------------------- /Examples/buffer/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/buffer/simple.png -------------------------------------------------------------------------------- /Examples/build/create.bat: -------------------------------------------------------------------------------- 1 | cmake -DHOST=YES ^ 2 | -DDOT="path to dot.EXE" ^ 3 | -DCMSISDSP="path to cmsis dsp" ^ 4 | -G "Unix Makefiles" .. -------------------------------------------------------------------------------- /Examples/build/create.sh: -------------------------------------------------------------------------------- 1 | cmake -DHOST=YES \ 2 | -DDOT="path to dot.EXE" \ 3 | -DCMSISDSP="path to cmsis dsp" \ 4 | -DHOST=YES \ 5 | -G "Unix Makefiles" .. -------------------------------------------------------------------------------- /Examples/callback/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Callback) 5 | 6 | 7 | add_executable(callback scheduler.cpp main.cpp) 8 | 9 | dotdependency(callback callback ON create.py) 10 | cppdependency(callback scheduler.cpp create.py) 11 | add_sdf_dir(callback) 12 | 13 | target_include_directories(callback PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | -------------------------------------------------------------------------------- /Examples/callback/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o callback $(CFLAGS) ./scheduler.cpp main.cpp 9 | 10 | clean: 11 | rm -f ./callback 12 | -------------------------------------------------------------------------------- /Examples/callback/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o callback $(CFLAGS) ./scheduler.cpp main.cpp 10 | 11 | clean: 12 | rm -f ./callback 13 | -------------------------------------------------------------------------------- /Examples/callback/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fecallback.exe $(CFLAGS) ./scheduler.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) callback.ilk 17 | $(RM) callback.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/callback/callback.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/callback/callback.pdf -------------------------------------------------------------------------------- /Examples/callback/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | callback: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/callback/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | // Some additional state for the state machine 5 | #define CG_BEFORE_SCHEDULE \ 6 | int someState=0; 7 | 8 | // State is preserved and restored between suspension and restoration 9 | // of state machine 10 | #define CG_RESTORE_STATE_MACHINE_STATE \ 11 | *someVariable = someState; 12 | 13 | #define CG_SAVE_STATE_MACHINE_STATE \ 14 | someState = *someVariable; 15 | 16 | 17 | #ifdef __cplusplus 18 | extern "C" 19 | { 20 | #endif 21 | 22 | 23 | extern void myfunc(const float *i,float *o,int l); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | 29 | #endif -------------------------------------------------------------------------------- /Examples/callback/docassets/callback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/callback/docassets/callback.png -------------------------------------------------------------------------------- /Examples/callback/docassets/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/callback/docassets/simple.png -------------------------------------------------------------------------------- /Examples/callback/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | - node: processing 12 | identified: true 13 | kind: ProcessingNode 14 | inputs: 15 | - input: i 16 | samples: 7 17 | type: float 18 | outputs: 19 | - output: o 20 | samples: 7 21 | type: float 22 | - node: sink 23 | identified: true 24 | kind: Sink 25 | inputs: 26 | - input: i 27 | samples: 5 28 | type: float 29 | edges: 30 | - src: 31 | node: source 32 | output: o 33 | dst: 34 | node: processing 35 | input: i 36 | - src: 37 | node: processing 38 | output: o 39 | dst: 40 | node: sink 41 | input: i 42 | 43 | -------------------------------------------------------------------------------- /Examples/callback/pre_schedule_callback.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/callback/pre_schedule_callback.pdf -------------------------------------------------------------------------------- /Examples/callback/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | extern int init_scheduler(int *someVariable); 22 | extern void free_scheduler(int *someVariable); 23 | 24 | extern uint32_t scheduler(int *error,int *someVariable); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /Examples/callback/simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/callback/simple -------------------------------------------------------------------------------- /Examples/customfifo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Simple) 5 | 6 | 7 | add_executable(simple scheduler.cpp main.cpp) 8 | 9 | dotdependency(simple simple ON create.py) 10 | cppdependency(simple scheduler.cpp create.py) 11 | add_sdf_dir(simple) 12 | 13 | target_include_directories(simple PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | -------------------------------------------------------------------------------- /Examples/customfifo/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o customfifo $(CFLAGS) ./scheduler.cpp main.cpp 9 | 10 | clean: 11 | rm -f ./customfifo 12 | -------------------------------------------------------------------------------- /Examples/customfifo/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o customfifo $(CFLAGS) ./scheduler.cpp main.cpp 10 | 11 | clean: 12 | rm -f ./customfifo 13 | -------------------------------------------------------------------------------- /Examples/customfifo/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fecustomfifo.exe $(CFLAGS) ./scheduler.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) customfifo.ilk 17 | $(RM) customfifo.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/customfifo/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | 5 | -------------------------------------------------------------------------------- /Examples/customfifo/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/customfifo/docassets/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/customfifo/docassets/simple.png -------------------------------------------------------------------------------- /Examples/customfifo/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | options: 4 | FIFO: MyFIFO 5 | nodes: 6 | - node: source 7 | identified: true 8 | kind: Source 9 | outputs: 10 | - output: o 11 | samples: 5 12 | type: float 13 | - node: processing 14 | identified: true 15 | kind: ProcessingNode 16 | inputs: 17 | - input: i 18 | samples: 7 19 | type: float 20 | outputs: 21 | - output: o 22 | samples: 7 23 | type: float 24 | - node: sink 25 | identified: true 26 | kind: Sink 27 | inputs: 28 | - input: i 29 | samples: 5 30 | type: float 31 | edges: 32 | - src: 33 | node: source 34 | output: o 35 | dst: 36 | node: processing 37 | input: i 38 | class: MyFIFO 39 | - src: 40 | node: processing 41 | output: o 42 | dst: 43 | node: sink 44 | input: i 45 | class: MyFIFO 46 | 47 | -------------------------------------------------------------------------------- /Examples/customfifo/graph2.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | options: 4 | FIFO: MyFIFO 5 | nodes: 6 | - node: source 7 | identified: true 8 | kind: Source 9 | outputs: 10 | - output: o 11 | samples: 5 12 | type: float 13 | - node: processing 14 | identified: true 15 | kind: ProcessingNode 16 | inputs: 17 | - input: i 18 | samples: 7 19 | type: float 20 | outputs: 21 | - output: o 22 | samples: 7 23 | type: float 24 | - node: sink 25 | identified: true 26 | kind: Sink 27 | inputs: 28 | - input: i 29 | samples: 5 30 | type: float 31 | edges: 32 | - src: 33 | node: source 34 | output: o 35 | dst: 36 | node: processing 37 | input: i 38 | class: MyFIFO 39 | - src: 40 | node: processing 41 | output: o 42 | dst: 43 | node: sink 44 | input: i 45 | class: MyFIFO 46 | 47 | -------------------------------------------------------------------------------- /Examples/customfifo/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/customfifo/pre_schedule_simple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/customfifo/pre_schedule_simple.pdf -------------------------------------------------------------------------------- /Examples/customfifo/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/cyclo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(cyclo) 5 | 6 | 7 | add_executable(cyclo generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(cyclo cyclo ON create.py) 10 | cppdependency(cyclo generated/scheduler.cpp create.py) 11 | add_sdf_dir(cyclo) 12 | 13 | target_include_directories(cyclo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(cyclo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/cyclo/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /Igenerated /I../../cg/src /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fecyclo.exe $(CFLAGS) generated/scheduler.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) cyclo.ilk 17 | $(RM) cyclo.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/cyclo/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | 5 | -------------------------------------------------------------------------------- /Examples/cyclo/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float float32_t; 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/cyclo/cyclo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/cyclo/cyclo.pdf -------------------------------------------------------------------------------- /Examples/cyclo/docassets/cyclo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/cyclo/docassets/cyclo.png -------------------------------------------------------------------------------- /Examples/cyclo/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/cyclo/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 10 | - 3 11 | - 2 12 | type: float 13 | - node: processing 14 | identified: true 15 | kind: ProcessingNode 16 | inputs: 17 | - input: i 18 | samples: 7 19 | type: float 20 | outputs: 21 | - output: o 22 | samples: 7 23 | type: float 24 | - node: sink 25 | identified: true 26 | kind: Sink 27 | inputs: 28 | - input: i 29 | samples: 5 30 | type: float 31 | edges: 32 | - src: 33 | node: source 34 | output: o 35 | dst: 36 | node: processing 37 | input: i 38 | - src: 39 | node: processing 40 | output: o 41 | dst: 42 | node: sink 43 | input: i 44 | 45 | -------------------------------------------------------------------------------- /Examples/cyclo/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/cyclo/pre_schedule_cyclo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/cyclo/pre_schedule_cyclo.pdf -------------------------------------------------------------------------------- /Examples/eventrecorder/ARMCM55_FP_MVE_config.txt: -------------------------------------------------------------------------------- 1 | core_clk.mul=50000000 2 | mps3_board.visualisation.disable-visualisation=1 3 | cpu0.semihosting-enable=0 4 | cpu0.FPU=1 5 | cpu0.MVE=2 6 | cpu0.SAU=0 7 | cpu0.SECEXT=1 8 | cpu0.INITSVTOR=0 9 | cpu0.INITNSVTOR=0 10 | -------------------------------------------------------------------------------- /Examples/eventrecorder/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(EventRecorder) 5 | 6 | 7 | add_executable(eventrecorder generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(eventrecorder event_recorder ON create.py) 10 | cppdependency(eventrecorder generated/scheduler.cpp create.py) 11 | add_sdf_dir(eventrecorder) 12 | 13 | target_include_directories(eventrecorder PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(eventrecorder PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/eventrecorder/EventRecorder.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/eventrecorder/EventRecorder.log -------------------------------------------------------------------------------- /Examples/eventrecorder/EventRecorderStub.scvd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Examples/eventrecorder/GetEvent_cs300.bat: -------------------------------------------------------------------------------- 1 | eventlist.exe ^ 2 | -a out\eventrecorder\VHT-Corstone-300\CommandLine\eventrecorder.axf ^ 3 | -I ..\..\cg.scvd ^ 4 | -I C:\Keil_v5\ARM\PACK\Keil\ARM_Compiler\1.7.2\EventRecorder.scvd ^ 5 | -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.9.0\ARM.CMSIS.pdsc ^ 6 | -I C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.9.0\CMSIS\RTOS2\RTX\RTX5.scvd ^ 7 | -b EventRecorder.log 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Examples/eventrecorder/RTE/Device/SSE-300-MPS3/cmsis_driver_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2022 Arm Limited. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CMSIS_DRIVER_CONFIG_H__ 18 | #define __CMSIS_DRIVER_CONFIG_H__ 19 | 20 | #include "system_SSE300MPS3.h" 21 | #include "device_cfg.h" 22 | #include "device_definition.h" 23 | #include "platform_base_address.h" 24 | 25 | #endif /* __CMSIS_DRIVER_CONFIG_H__ */ 26 | -------------------------------------------------------------------------------- /Examples/eventrecorder/RTE/Device/SSE-300-MPS3/cmsis_driver_config.h.base@1.1.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2022 Arm Limited. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CMSIS_DRIVER_CONFIG_H__ 18 | #define __CMSIS_DRIVER_CONFIG_H__ 19 | 20 | #include "system_SSE300MPS3.h" 21 | #include "device_cfg.h" 22 | #include "device_definition.h" 23 | #include "platform_base_address.h" 24 | 25 | #endif /* __CMSIS_DRIVER_CONFIG_H__ */ 26 | -------------------------------------------------------------------------------- /Examples/eventrecorder/config.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | event-recorder: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/eventrecorder/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float float32_t; 4 | 5 | #if defined(RTE_Compiler_EventRecorder) 6 | #include "EventRecorder.h" 7 | #endif 8 | 9 | #endif -------------------------------------------------------------------------------- /Examples/eventrecorder/docassets/event_recorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/eventrecorder/docassets/event_recorder.png -------------------------------------------------------------------------------- /Examples/eventrecorder/docassets/ide_events.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/eventrecorder/docassets/ide_events.PNG -------------------------------------------------------------------------------- /Examples/eventrecorder/docassets/project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/eventrecorder/docassets/project.png -------------------------------------------------------------------------------- /Examples/eventrecorder/eventrecorder.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main.cpp 6 | - file: generated/scheduler.cpp 7 | 8 | add-path: 9 | - generated 10 | - . 11 | 12 | components: 13 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 14 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 15 | for-context: 16 | - .CommandLine 17 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 18 | for-context: 19 | - .IDE 20 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 21 | for-context: 22 | - .IDE 23 | 24 | layers: 25 | - layer: vht.clayer.yml 26 | 27 | -------------------------------------------------------------------------------- /Examples/eventrecorder/example.cbuild-idx.yml: -------------------------------------------------------------------------------- 1 | build-idx: 2 | csolution: example.csolution_ac6.yml 3 | cprojects: 4 | - cproject: eventrecorder.cproject.yml 5 | clayers: 6 | - clayer: vht.clayer.yml 7 | cbuilds: 8 | - cbuild: eventrecorder.CommandLine+VHT-Corstone-300.cbuild.yml 9 | - cbuild: eventrecorder.IDE+VHT-Corstone-300.cbuild.yml 10 | -------------------------------------------------------------------------------- /Examples/eventrecorder/graph.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | - node: processing 12 | identified: true 13 | kind: ProcessingNode 14 | inputs: 15 | - input: i 16 | samples: 7 17 | type: float 18 | outputs: 19 | - output: o 20 | samples: 7 21 | type: float 22 | - node: sink 23 | identified: true 24 | kind: Sink 25 | inputs: 26 | - input: i 27 | samples: 5 28 | type: float 29 | edges: 30 | - src: 31 | node: source 32 | output: o 33 | dst: 34 | node: processing 35 | input: i 36 | - src: 37 | node: processing 38 | output: o 39 | dst: 40 | node: sink 41 | input: i 42 | 43 | -------------------------------------------------------------------------------- /Examples/eventrecorder/run.bat: -------------------------------------------------------------------------------- 1 | C:\Keil_v5\ARM\VHT\VHT_Corstone_SSE-300_Ethos-U55.exe ^ 2 | -f ARMCM55_FP_MVE_config.txt ^ 3 | -C cpu0.semihosting-enable=1 ^ 4 | -a cpu0="out\eventrecorder\VHT-Corstone-300\CommandLine\eventrecorder.axf" 5 | -------------------------------------------------------------------------------- /Examples/eventrecorder/vht.clayer.yml: -------------------------------------------------------------------------------- 1 | layer: 2 | # name: VHT 3 | description: Boot code for Virtual Hardware 4 | 5 | components: 6 | - component: ARM::CMSIS:CORE 7 | - component: Device:Startup&C Startup 8 | not-for-context: 9 | - +VHT-Corstone-300 10 | - +VHT-Corstone-310 11 | - component: ARM::Device:Definition 12 | for-context: 13 | - +VHT-Corstone-300 14 | - +VHT-Corstone-310 15 | - component: ARM::Device:Startup&Baremetal 16 | for-context: 17 | - +VHT-Corstone-300 18 | - +VHT-Corstone-310 19 | - component: ARM::Native Driver:Timeout 20 | for-context: 21 | - +VHT-Corstone-300 22 | - +VHT-Corstone-310 23 | - component: ARM::Native Driver:SysCounter 24 | for-context: 25 | - +VHT-Corstone-300 26 | - +VHT-Corstone-310 27 | - component: ARM::Native Driver:SysTimer 28 | for-context: 29 | - +VHT-Corstone-300 30 | - +VHT-Corstone-310 31 | -------------------------------------------------------------------------------- /Examples/example1/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example1) 5 | 6 | 7 | add_executable(example1 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example1 test ON graph.py) 10 | cppdependency(example1 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example1) 12 | 13 | target_include_directories(example1 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example1 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/example1/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: 6 | - int someVariable 7 | 8 | -------------------------------------------------------------------------------- /Examples/example1/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #endif -------------------------------------------------------------------------------- /Examples/example1/docassets/graph1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example1/docassets/graph1.PNG -------------------------------------------------------------------------------- /Examples/example1/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,int someVariable); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example1/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | - node: processing 12 | identified: true 13 | kind: ProcessingNode 14 | inputs: 15 | - input: i 16 | samples: 7 17 | type: float 18 | outputs: 19 | - output: o 20 | samples: 5 21 | type: float 22 | args: 23 | - literal: 4 24 | - literal: testString 25 | - variable: someVariable 26 | - node: sink 27 | identified: true 28 | kind: Sink 29 | inputs: 30 | - input: i 31 | samples: 5 32 | type: float 33 | edges: 34 | - src: 35 | node: source 36 | output: o 37 | dst: 38 | node: processing 39 | input: i 40 | - src: 41 | node: processing 42 | output: o 43 | dst: 44 | node: sink 45 | input: i 46 | 47 | -------------------------------------------------------------------------------- /Examples/example1/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error,1); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/example1/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example1/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example1/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example1/test.pdf -------------------------------------------------------------------------------- /Examples/example10/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example10) 5 | 6 | 7 | add_executable(example10 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example10 test ON graph.py) 10 | cppdependency(example10 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example10) 12 | 13 | target_include_directories(example10 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example10 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/example10/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | heap-allocation: true 4 | code-generation-options: 5 | debug-limit: 10 6 | c-code-generation-options: 7 | fully-asynchronous: true 8 | 9 | -------------------------------------------------------------------------------- /Examples/example10/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #include "cg_status.h" 4 | 5 | #define CG_AFTER_ITERATION count++ 6 | 7 | #endif -------------------------------------------------------------------------------- /Examples/example10/docassets/graph10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example10/docassets/graph10.png -------------------------------------------------------------------------------- /Examples/example10/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | extern int init_scheduler(); 22 | extern void free_scheduler(); 23 | 24 | extern uint32_t scheduler(int *error); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /Examples/example10/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | int err = init_scheduler(); 10 | uint32_t nbSched=scheduler(&error); 11 | free_scheduler(); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /Examples/example10/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example10/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example10/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example10/test.pdf -------------------------------------------------------------------------------- /Examples/example11/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example11) 5 | 6 | 7 | add_executable(example11 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example11 test ON graph.py) 10 | cppdependency(example11 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example11) 12 | 13 | target_include_directories(example11 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example11 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/example11/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 10 4 | c-code-generation-options: 5 | fully-asynchronous: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/example11/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #include "cg_status.h" 4 | 5 | #define CG_AFTER_ITERATION count++ 6 | 7 | #endif -------------------------------------------------------------------------------- /Examples/example11/docassets/graph10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example11/docassets/graph10.png -------------------------------------------------------------------------------- /Examples/example11/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example11/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | //int err = init_scheduler(); 10 | uint32_t nbSched=scheduler(&error); 11 | //free_scheduler(); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /Examples/example11/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example11/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example11/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example11/test.pdf -------------------------------------------------------------------------------- /Examples/example12/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example12) 5 | 6 | 7 | add_executable(example12 static/static_scheduler.cpp 8 | dynamic/dynamic_scheduler.cpp 9 | main.cpp) 10 | 11 | dotdependency(example12 static ON static_refcount.py) 12 | dotdependency(example12 dynamic ON dynamic_refcount.py) 13 | 14 | cppdependency(example12 static/static_scheduler.cpp static_refcount.py) 15 | cppdependency(example12 dynamic/dynamic_scheduler.cpp dynamic_refcount.py) 16 | add_sdf_dir(example12) 17 | 18 | target_include_directories(example12 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 19 | target_include_directories(example12 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/static) 20 | target_include_directories(example12 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/dynamic) 21 | -------------------------------------------------------------------------------- /Examples/example12/config.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: 6 | - int someVariable 7 | 8 | -------------------------------------------------------------------------------- /Examples/example12/config_dynamic.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | scheduler-name: dynamic_scheduler 5 | fifo-prefix: dynamic_ 6 | c-code-generation-options: 7 | c-optional-args: [] 8 | scheduler-c-file-name: dynamic_scheduler 9 | 10 | -------------------------------------------------------------------------------- /Examples/example12/config_static.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | scheduler-name: static_scheduler 5 | fifo-prefix: static_ 6 | c-code-generation-options: 7 | c-optional-args: [] 8 | scheduler-c-file-name: static_scheduler 9 | 10 | -------------------------------------------------------------------------------- /Examples/example12/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float* buffer; 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/example12/docassets/graph1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/docassets/graph1.PNG -------------------------------------------------------------------------------- /Examples/example12/dynamic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/dynamic.pdf -------------------------------------------------------------------------------- /Examples/example12/dynamic/dynamic_scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _DYNAMIC_SCHEDULER_H_ 11 | #define _DYNAMIC_SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t dynamic_scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example12/dynamic_refcount.py: -------------------------------------------------------------------------------- 1 | from cmsis_stream.cg.scheduler import * 2 | from cmsis_stream.cg.yaml import * 3 | from create import mkGraph 4 | 5 | sharedPtr=CCustomType("std::shared_ptr",8) 6 | g=mkGraph(sharedPtr) 7 | 8 | print("Generate graphviz and code") 9 | 10 | conf=Configuration() 11 | conf.debugLimit=1 12 | conf.schedName="dynamic_scheduler" 13 | conf.prefix="dynamic_" 14 | conf.schedulerCFileName = "dynamic_scheduler" 15 | 16 | conf.cOptionalArgs=[] 17 | 18 | export_graph(g,"graph_dynamic.yml") 19 | export_config(conf,"config_dynamic.yml") 20 | 21 | with open("pre_schedule_dynamic.dot","w") as f: 22 | g.graphviz(f) 23 | 24 | sched = g.computeSchedule(config=conf) 25 | 26 | print("Schedule length = %d" % sched.scheduleLength) 27 | print("Memory usage %d bytes" % sched.memory) 28 | 29 | sched.ccode("dynamic",conf) 30 | 31 | with open("dynamic.dot","w") as f: 32 | sched.graphviz(f) 33 | 34 | -------------------------------------------------------------------------------- /Examples/example12/graph.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | - node: processing 12 | identified: true 13 | kind: ProcessingNode 14 | inputs: 15 | - input: i 16 | samples: 7 17 | type: float 18 | outputs: 19 | - output: o 20 | samples: 5 21 | type: float 22 | args: 23 | - literal: 4 24 | - literal: testString 25 | - variable: someVariable 26 | - node: sink 27 | identified: true 28 | kind: Sink 29 | inputs: 30 | - input: i 31 | samples: 5 32 | type: float 33 | edges: 34 | - src: 35 | node: source 36 | output: o 37 | dst: 38 | node: processing 39 | input: i 40 | - src: 41 | node: processing 42 | output: o 43 | dst: 44 | node: sink 45 | input: i 46 | 47 | -------------------------------------------------------------------------------- /Examples/example12/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "static_scheduler.h" 4 | #include "dynamic_scheduler.h" 5 | #include 6 | 7 | int main(int argc, char const *argv[]) 8 | { 9 | std::shared_ptr sp( new float[40], std::default_delete() ); 10 | int error; 11 | printf("Start %zd\n",sizeof(sp)); 12 | uint32_t nbSched=static_scheduler(&error); 13 | nbSched=dynamic_scheduler(&error); 14 | 15 | return 0; 16 | } -------------------------------------------------------------------------------- /Examples/example12/pre_schedule_dynamic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/pre_schedule_dynamic.pdf -------------------------------------------------------------------------------- /Examples/example12/pre_schedule_static.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/pre_schedule_static.pdf -------------------------------------------------------------------------------- /Examples/example12/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example12/static.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/static.pdf -------------------------------------------------------------------------------- /Examples/example12/static/static_scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _STATIC_SCHEDULER_H_ 11 | #define _STATIC_SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t static_scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example12/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example12/test.pdf -------------------------------------------------------------------------------- /Examples/example2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example2) 5 | 6 | 7 | add_executable(example2 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example2 test ON graph.py ) 10 | cppdependency(example2 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example2) 12 | 13 | target_include_directories(example2 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example2 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | 16 | target_link_libraries(example2 PRIVATE CMSISDSP) -------------------------------------------------------------------------------- /Examples/example2/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: int opt1,int opt2 6 | cmsis-dsp: true 7 | 8 | -------------------------------------------------------------------------------- /Examples/example2/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | #define HALF 0.5 3 | 4 | #endif 5 | 6 | -------------------------------------------------------------------------------- /Examples/example2/docassets/graph2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example2/docassets/graph2.PNG -------------------------------------------------------------------------------- /Examples/example2/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,int opt1,int opt2); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example2/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | 6 | int main(int argc, char const *argv[]) 7 | { 8 | int error; 9 | printf("Start\n"); 10 | uint32_t nbSched=scheduler(&error,1,2); 11 | printf("Nb schedules = %d\r\nError code = %d\r\n",nbSched,error); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /Examples/example2/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example2/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example2/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example2/test.pdf -------------------------------------------------------------------------------- /Examples/example3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example3) 5 | 6 | 7 | add_executable(example3 generated/scheduler.cpp main.cpp custom.cpp) 8 | 9 | dotdependency(example3 test ON graph.py) 10 | cppdependency(example3 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example3) 12 | 13 | target_include_directories(example3 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example3 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | 16 | target_link_libraries(example3 PRIVATE CMSISDSP) 17 | 18 | file(COPY input_example3.txt DESTINATION ${CMAKE_BINARY_DIR}) -------------------------------------------------------------------------------- /Examples/example3/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 40 4 | c-code-generation-options: 5 | cmsis-dsp: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/example3/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #define HALF 0.5 4 | extern const float32_t HANN[256]; 5 | 6 | 7 | 8 | #endif -------------------------------------------------------------------------------- /Examples/example3/debug.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from pylab import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show,semilogx, semilogy 3 | from numpy import genfromtxt 4 | ref_data = genfromtxt('input_example3.txt', delimiter=',') 5 | 6 | figure() 7 | plot(ref_data) 8 | 9 | output_data = genfromtxt('../build/output_example3.txt', delimiter=',') 10 | 11 | plot(output_data) 12 | show() 13 | 14 | print(ref_data.shape) 15 | print(output_data.shape) 16 | nb = output_data.shape[0] - 128 17 | 18 | print("Comparison of input and output : max absolute error") 19 | diff = output_data[128:] - ref_data[:nb] 20 | print(np.max(np.abs(diff))) 21 | -------------------------------------------------------------------------------- /Examples/example3/docassets/graph3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example3/docassets/graph3.PNG -------------------------------------------------------------------------------- /Examples/example3/docassets/sine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example3/docassets/sine.png -------------------------------------------------------------------------------- /Examples/example3/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example3/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | 6 | int main(int argc, char const *argv[]) 7 | { 8 | int error; 9 | printf("Start\n"); 10 | uint32_t nb = scheduler(&error); 11 | printf("Nb = %d\n",nb); 12 | return 0; 13 | } -------------------------------------------------------------------------------- /Examples/example3/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example3/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example3/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example3/test.pdf -------------------------------------------------------------------------------- /Examples/example4_python/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example4) 5 | 6 | 7 | add_custom_target(example4 ALL DEPENDS main.py sched.py) 8 | 9 | dotdependency(example4 test ON graph.py) 10 | pythondependency(example4 main.py graph.py) 11 | -------------------------------------------------------------------------------- /Examples/example4_python/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 42 4 | python-code-generation-options: 5 | py-optional-args: dispbuf 6 | 7 | -------------------------------------------------------------------------------- /Examples/example4_python/docassets/graph4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example4_python/docassets/graph4.png -------------------------------------------------------------------------------- /Examples/example4_python/docassets/sine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example4_python/docassets/sine.png -------------------------------------------------------------------------------- /Examples/example4_python/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example4_python/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example4_python/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example4_python/test.pdf -------------------------------------------------------------------------------- /Examples/example5_python/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example5) 5 | 6 | 7 | add_custom_target(example5 ALL DEPENDS main.py sched.py) 8 | 9 | dotdependency(example5 test ON graph.py) 10 | pythondependency(example5 main.py graph.py) 11 | -------------------------------------------------------------------------------- /Examples/example5_python/README.md: -------------------------------------------------------------------------------- 1 | # Example 5 2 | 3 | This is a pure python example. It is computing a sequence of MFCC with an overlap of 0.5 s and it is creating an animation. 4 | 5 | It can be run with: 6 | 7 | `python main.py` 8 | 9 | The `NumPy` sink at the end is just recording all the MFCC outputs as a list of buffers. This list is used to create an animation. 10 | 11 | graph5 12 | 13 | ## Expected output 14 | 15 | ``` 16 | Generate graphviz and code 17 | Schedule length = 292 18 | Memory usage 6614 bytes 19 | ``` 20 | 21 | And when executed you should get an animation looking like this: 22 | 23 | ![mfcc](docassets/mfcc.png) 24 | 25 | The Python `main.py` contains a line which can be uncommented to record the animation as a `.mp4` video. -------------------------------------------------------------------------------- /Examples/example5_python/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 12 4 | python-code-generation-options: 5 | py-optional-args: mfccConfig,dispbuf 6 | 7 | -------------------------------------------------------------------------------- /Examples/example5_python/custom.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Examples/example5_python/docassets/graph5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/docassets/graph5.png -------------------------------------------------------------------------------- /Examples/example5_python/docassets/mfcc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/docassets/mfcc.png -------------------------------------------------------------------------------- /Examples/example5_python/mfcc.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/mfcc.mp4 -------------------------------------------------------------------------------- /Examples/example5_python/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example5_python/sharedconfig.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import numpy as np 3 | 4 | 5 | FS=16000 6 | NBCHANNELS=2 # stereo 7 | # You can try with 120 8 | AUDIO_INTERRUPT_LENGTH = 192 9 | 10 | # MFCC Description 11 | sample_rate = 16000 12 | FFTSize = 1024 13 | AudioOverlap = 256 14 | numOfDctOutputs = 13 15 | 16 | freq_min = 64 17 | freq_high = sample_rate / 2 18 | numOfMelFilters = 20 19 | 20 | # NB MFCC Outputs to cover one second of signal with the window overlap 21 | nbMFCCOutputs = int(np.floor((sample_rate - FFTSize) / AudioOverlap)) 22 | 23 | if nbMFCCOutputs%2 == 1: 24 | nbMFCCOutputs = nbMFCCOutputs + 1 25 | 26 | -------------------------------------------------------------------------------- /Examples/example5_python/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/test.pdf -------------------------------------------------------------------------------- /Examples/example5_python/test_stereo.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example5_python/test_stereo.wav -------------------------------------------------------------------------------- /Examples/example6/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example6) 5 | 6 | 7 | add_executable(example6 generated/scheduler.cpp main.cpp mfccConfigData.c) 8 | 9 | dotdependency(example6 test ON graph.py) 10 | cppdependency(example6 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example6) 12 | 13 | target_include_directories(example6 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example6 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | 16 | target_link_libraries(example6 PRIVATE CMSISDSP) 17 | 18 | file(COPY input_example6.txt DESTINATION ${CMAKE_BINARY_DIR}) -------------------------------------------------------------------------------- /Examples/example6/README.md: -------------------------------------------------------------------------------- 1 | # Example 6 2 | 3 | This example is similar to example 5 but with C code generation instead of Python. 4 | 5 | ![graph6](docassets/graph6.png) 6 | 7 | ## Expected output 8 | 9 | ``` 10 | nbMFCCOutputs = 126 11 | Generate graphviz and code 12 | Schedule length = 17 13 | Memory usage 2204 bytes 14 | ``` 15 | 16 | -------------------------------------------------------------------------------- /Examples/example6/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: arm_mfcc_instance_f32 *mfccConfig 6 | 7 | -------------------------------------------------------------------------------- /Examples/example6/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | 4 | #endif -------------------------------------------------------------------------------- /Examples/example6/docassets/graph6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example6/docassets/graph6.png -------------------------------------------------------------------------------- /Examples/example6/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,arm_mfcc_instance_f32 *mfccConfig); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example6/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "arm_math.h" 4 | #include "scheduler.h" 5 | #include "mfccConfigData.h" 6 | 7 | static arm_mfcc_instance_f32 mfcc; 8 | 9 | int main(int argc, char const *argv[]) 10 | { 11 | int error; 12 | printf("Start\n"); 13 | 14 | arm_mfcc_init_f32(&mfcc, 15 | 256,20,13,mfcc_dct_coefs_config1_f32, 16 | mfcc_filter_pos_config1_f32,mfcc_filter_len_config1_f32, 17 | mfcc_filter_coefs_config1_f32, 18 | mfcc_window_coefs_config1_f32); 19 | 20 | uint32_t nb = scheduler(&error,&mfcc); 21 | printf("Nb = %d\n",nb); 22 | return 0; 23 | } -------------------------------------------------------------------------------- /Examples/example6/mfccconfig.yaml: -------------------------------------------------------------------------------- 1 | dct: 2 | config1_f32: 3 | melFilters: 20 4 | dctOutputs: 13 5 | type: "f32" 6 | 7 | melfilter: 8 | config1_f32 : 9 | fftlength: 256 10 | fmin: 64 11 | fmax: 8000 12 | samplingRate : 16000 13 | melFilters: 20 14 | type: "f32" 15 | 16 | window: 17 | config1_f32: 18 | fftlength: 256 19 | type: "f32" 20 | win: "hamming" 21 | -------------------------------------------------------------------------------- /Examples/example6/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example6/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example6/sharedconfig.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import numpy as np 3 | 4 | 5 | FS=16000 6 | NBCHANNELS=1 # stereo 7 | # You can try with 120 8 | AUDIO_INTERRUPT_LENGTH = 192 9 | 10 | # MFCC Description 11 | sample_rate = 16000 12 | FFTSize = 256 13 | numOfDctOutputs = 13 14 | 15 | freq_min = 64 16 | freq_high = sample_rate / 2 17 | numOfMelFilters = 20 18 | 19 | # NB MFCC Outputs to cover one second of signal with the window overlap 20 | nbMFCCOutputs = int(np.floor(sample_rate / (FFTSize >> 1))) 21 | 22 | if nbMFCCOutputs%2 == 1: 23 | nbMFCCOutputs = nbMFCCOutputs + 1 24 | 25 | print("nbMFCCOutputs = %d " % nbMFCCOutputs) -------------------------------------------------------------------------------- /Examples/example6/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example6/test.pdf -------------------------------------------------------------------------------- /Examples/example7_python/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example7) 5 | 6 | 7 | add_custom_target(example7 ALL DEPENDS main.py sched.py) 8 | 9 | dotdependency(example7 test ON graph.py) 10 | pythondependency(example7 main.py graph.py) 11 | -------------------------------------------------------------------------------- /Examples/example7_python/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | c-code-generation-options: 3 | cmsis-dsp: true 4 | 5 | -------------------------------------------------------------------------------- /Examples/example7_python/custom.py: -------------------------------------------------------------------------------- 1 | from cmsis_stream.cg.nodes.simu import * 2 | 3 | import numpy as np 4 | import cmsisdsp as dsp 5 | 6 | 7 | class Processing(GenericNode): 8 | def __init__(self,inputSize,outputSize,fifoin,fifoout): 9 | GenericNode.__init__(self,inputSize,outputSize,fifoin,fifoout) 10 | 11 | def run(self): 12 | 13 | i=self.getReadBuffer() 14 | o=self.getWriteBuffer() 15 | 16 | b=dsp.arm_scale_q15(i,0x6000,1) 17 | 18 | o[:]=b[:] 19 | 20 | 21 | return(0) -------------------------------------------------------------------------------- /Examples/example7_python/docassets/graph7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/docassets/graph7.png -------------------------------------------------------------------------------- /Examples/example7_python/docassets/modelica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/docassets/modelica.png -------------------------------------------------------------------------------- /Examples/example7_python/docassets/waveoutput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/docassets/waveoutput.png -------------------------------------------------------------------------------- /Examples/example7_python/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: src 5 | identified: true 6 | kind: VHTSource 7 | outputs: 8 | - output: o 9 | samples: 128 10 | type: q15_t 11 | args: 12 | - literal: 0 13 | - node: proc 14 | identified: true 15 | kind: Processing 16 | inputs: 17 | - input: i 18 | samples: 128 19 | type: q15_t 20 | outputs: 21 | - output: o 22 | samples: 128 23 | type: q15_t 24 | - node: sink 25 | identified: true 26 | kind: VHTSink 27 | inputs: 28 | - input: i 29 | samples: 128 30 | type: q15_t 31 | args: 32 | - literal: 0 33 | edges: 34 | - src: 35 | node: src 36 | output: o 37 | dst: 38 | node: proc 39 | input: i 40 | - src: 41 | node: proc 42 | output: o 43 | dst: 44 | node: sink 45 | input: i 46 | 47 | -------------------------------------------------------------------------------- /Examples/example7_python/output.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/output.wav -------------------------------------------------------------------------------- /Examples/example7_python/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example7_python/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example7_python/test.pdf -------------------------------------------------------------------------------- /Examples/example8/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example8) 5 | 6 | 7 | add_executable(example8 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example8 test ON graph.py) 10 | cppdependency(example8 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example8) 12 | 13 | target_include_directories(example8 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example8 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/example8/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | schedule-options: 3 | memory-optimization: true 4 | code-generation-options: 5 | debug-limit: 2 6 | c-code-generation-options: 7 | c-optional-args: int someVariable 8 | 9 | -------------------------------------------------------------------------------- /Examples/example8/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | 4 | #ifdef __cplusplus 5 | extern "C" 6 | { 7 | #endif 8 | 9 | typedef struct { 10 | float re; 11 | float im; 12 | } complex; 13 | 14 | 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | 19 | 20 | #endif -------------------------------------------------------------------------------- /Examples/example8/custom.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | class MyComplex: 4 | def __init__(self,re=0,im=0): 5 | self.re = re 6 | self.im = im 7 | 8 | def __str__(self): 9 | return("%f + I %f" % (self.re, self.im)) 10 | 11 | def __repr__(self): 12 | return("MyComplex(%f,%f)" % (self.re, self.im)) 13 | 14 | -------------------------------------------------------------------------------- /Examples/example8/docassets/graph8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example8/docassets/graph8.png -------------------------------------------------------------------------------- /Examples/example8/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,int someVariable); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example8/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error,1); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/example8/main.py: -------------------------------------------------------------------------------- 1 | import sched as s 2 | from custom import * 3 | 4 | # Only ONE FileSink can be used since the data will be dumped 5 | # into this global buffer for display with Matplotlib 6 | # It will have to be cleaned and reworked in future to use better 7 | # mechanism of communication with the main code 8 | 9 | print("Start") 10 | nb,error = s.scheduler("test") 11 | print("Nb sched = %d" % nb) 12 | 13 | -------------------------------------------------------------------------------- /Examples/example8/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example8/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example8/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example8/test.pdf -------------------------------------------------------------------------------- /Examples/example9/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Example9) 5 | 6 | 7 | add_executable(example9 generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(example9 test ON graph.py) 10 | cppdependency(example9 generated/scheduler.cpp graph.py) 11 | add_sdf_dir(example9) 12 | 13 | target_include_directories(example9 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(example9 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | -------------------------------------------------------------------------------- /Examples/example9/README.md: -------------------------------------------------------------------------------- 1 | # Example 9 2 | 3 | This example is just checking that duplicate node insertion and delay on a connection are working well together. 4 | 5 | The Python script is able to schedule the graph. 6 | 7 | ![graph9](docassets/graph9.png) -------------------------------------------------------------------------------- /Examples/example9/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 2 4 | c-code-generation-options: 5 | c-optional-args: int someVariable 6 | 7 | -------------------------------------------------------------------------------- /Examples/example9/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #endif -------------------------------------------------------------------------------- /Examples/example9/docassets/graph9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example9/docassets/graph9.png -------------------------------------------------------------------------------- /Examples/example9/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,int someVariable); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/example9/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error,1); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/example9/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example9/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/example9/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/example9/test.pdf -------------------------------------------------------------------------------- /Examples/functionexample/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(FunctionExample) 5 | 6 | 7 | add_custom_target(functionexample ALL DEPENDS function.dot scheduler.cpp) 8 | 9 | 10 | # No pre-schedule dot file generated 11 | dotdependency(functionexample function OFF create.py) 12 | cppdependency(functionexample scheduler.cpp create.py) 13 | 14 | -------------------------------------------------------------------------------- /Examples/functionexample/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | cmsis-dsp: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/functionexample/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float float32_t; 4 | 5 | #define OFFSET_VALUE 2.0f 6 | 7 | #endif -------------------------------------------------------------------------------- /Examples/functionexample/debug.py: -------------------------------------------------------------------------------- 1 | from cmsis_stream.cg.yaml import * 2 | 3 | g=import_graph("graph.yml") 4 | print(g) -------------------------------------------------------------------------------- /Examples/functionexample/function.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/functionexample/function.pdf -------------------------------------------------------------------------------- /Examples/functionexample/function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/functionexample/function.png -------------------------------------------------------------------------------- /Examples/functionexample/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/graphvizexample/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Graphviz) 5 | 6 | 7 | add_custom_target(graphviz ALL DEPENDS test.dot) 8 | 9 | dotdependency(graphviz test ON graph.py) 10 | -------------------------------------------------------------------------------- /Examples/graphvizexample/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: int opt1,int opt2 6 | cmsis-dsp: true 7 | 8 | -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_arrow_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_arrow_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_edge_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_edge_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_const_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_const_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_delay_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_delay_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_edge_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_edge_label.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_edge_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_edge_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_node_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_node_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_node_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_node_label.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_node_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_node_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_port_font_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_port_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_port_sample_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_func_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_func_port_sample_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_graph_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_graph_background.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_graph_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_graph_font.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_node_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_node_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_node_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_node_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_port_font_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_port_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_port_sample_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_port_sample_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/feature_special_node_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/feature_special_node_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_arrow_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_arrow_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_edge_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_edge_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_const_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_const_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_delay_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_delay_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_edge_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_edge_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_edge_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_edge_style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_edge_style.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_node_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_node_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_node_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_node_label.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_node_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_node_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_port_font_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_port_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_port_sample_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_func_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_func_port_sample_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_graph_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_graph_background.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_graph_font.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_graph_font.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_node_boundary_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_node_boundary_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_node_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_node_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_node_label_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_node_label_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_node_label_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_node_label_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_port_font_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_port_font_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_port_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_port_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_port_sample_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_port_sample_color.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_port_sample_font_size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_port_sample_font_size.png -------------------------------------------------------------------------------- /Examples/graphvizexample/feature/pre_schedule_feature_special_node_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/feature/pre_schedule_feature_special_node_border.png -------------------------------------------------------------------------------- /Examples/graphvizexample/gen_pict.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | dot -Tpng -o pre_schedule_test.png pre_schedule_test.dot 3 | dot -Tpng -o test.png test.dot 4 | 5 | dot -Tsvg -o pre_schedule_test.svg pre_schedule_test.dot 6 | dot -Tsvg -o test.svg test.dot 7 | 8 | dot -Tpdf -o pre_schedule_test.pdf pre_schedule_test.dot 9 | dot -Tpdf -o test.pdf test.dot -------------------------------------------------------------------------------- /Examples/graphvizexample/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/graphvizexample/pre_schedule_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/pre_schedule_test.png -------------------------------------------------------------------------------- /Examples/graphvizexample/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/test.pdf -------------------------------------------------------------------------------- /Examples/graphvizexample/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/graphvizexample/test.png -------------------------------------------------------------------------------- /Examples/runtime_mode/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. -Iflatbuffers_1.23.2/include 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o runtime_mode $(CFLAGS) ./runtime_sched.cpp main.cpp 9 | 10 | clean: 11 | rm -f ./runtime_mode 12 | -------------------------------------------------------------------------------- /Examples/runtime_mode/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. -Iflatbuffers_1.23.2/include 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o runtime_mode $(CFLAGS) ./runtime_sched.cpp main.cpp 10 | 11 | clean: 12 | rm -f ./runtime_mode 13 | -------------------------------------------------------------------------------- /Examples/runtime_mode/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. /I "flatbuffers_1.23.2/include" 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = /std:c++17 $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Feruntime_mode.exe $(CFLAGS) ./runtime_sched.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) runtime_mode.ilk 17 | $(RM) runtime_mode.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/runtime_mode/cmsis_stream_writer/IODesc.py: -------------------------------------------------------------------------------- 1 | # automatically generated by the FlatBuffers compiler, do not modify 2 | 3 | # namespace: arm_cmsis_stream 4 | 5 | import flatbuffers 6 | from flatbuffers.compat import import_numpy 7 | np = import_numpy() 8 | 9 | class IODesc(object): 10 | __slots__ = ['_tab'] 11 | 12 | @classmethod 13 | def SizeOf(cls): 14 | return 4 15 | 16 | # IODesc 17 | def Init(self, buf, pos): 18 | self._tab = flatbuffers.table.Table(buf, pos) 19 | 20 | # IODesc 21 | def Id(self): return self._tab.Get(flatbuffers.number_types.Uint16Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0)) 22 | # IODesc 23 | def Nb(self): return self._tab.Get(flatbuffers.number_types.Uint16Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(2)) 24 | 25 | def CreateIODesc(builder, id, nb): 26 | builder.Prep(2, 4) 27 | builder.PrependUint16(nb) 28 | builder.PrependUint16(id) 29 | return builder.Offset() 30 | -------------------------------------------------------------------------------- /Examples/runtime_mode/cmsis_stream_writer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/runtime_mode/cmsis_stream_writer/__init__.py -------------------------------------------------------------------------------- /Examples/runtime_mode/config.yml: -------------------------------------------------------------------------------- 1 | version: 1.1.0 2 | schedule-options: 3 | memory-optimization: true 4 | code-generation-options: 5 | debug-limit: 1 6 | c-code-generation-options: 7 | node-identification: true 8 | 9 | -------------------------------------------------------------------------------- /Examples/runtime_mode/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/runtime_mode/sched_flat.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/runtime_mode/sched_flat.dat -------------------------------------------------------------------------------- /Examples/runtime_mode/stream.fbs: -------------------------------------------------------------------------------- 1 | namespace arm_cmsis_stream; 2 | 3 | 4 | struct UUID { 5 | v:[ubyte:16]; 6 | } 7 | 8 | struct IODesc { 9 | id:uint16; 10 | nb:uint16; 11 | } 12 | 13 | table Node { 14 | uuid:UUID; 15 | id:uint16; 16 | inputs:[IODesc]; 17 | outputs:[IODesc]; 18 | node_data:[byte]; 19 | name:string; 20 | } 21 | 22 | table BufferDesc { 23 | length:uint32; 24 | } 25 | 26 | table FIFODesc { 27 | id:uint16; 28 | length:uint32; 29 | bufid:uint16; 30 | delay:uint32; 31 | buffer:bool; 32 | } 33 | 34 | table Schedule { 35 | async_mode:bool; 36 | nodes:[Node]; 37 | buffers:[BufferDesc]; 38 | fifos:[FIFODesc]; 39 | schedule:[uint16]; 40 | } 41 | 42 | 43 | root_type Schedule; -------------------------------------------------------------------------------- /Examples/simple/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Simple) 5 | 6 | 7 | add_executable(simple scheduler.cpp main.cpp) 8 | 9 | dotdependency(simple simple ON create.py) 10 | cppdependency(simple scheduler.cpp create.py) 11 | add_sdf_dir(simple) 12 | 13 | target_include_directories(simple PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | -------------------------------------------------------------------------------- /Examples/simple/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main.cpp 9 | 10 | clean: 11 | rm -f ./simple 12 | -------------------------------------------------------------------------------- /Examples/simple/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main.cpp 10 | 11 | clean: 12 | rm -f ./simple 13 | -------------------------------------------------------------------------------- /Examples/simple/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fesimple.exe $(CFLAGS) ./scheduler.cpp main.cpp 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) simple.ilk 17 | $(RM) simple.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /Examples/simple/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | 5 | -------------------------------------------------------------------------------- /Examples/simple/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | 5 | #endif -------------------------------------------------------------------------------- /Examples/simple/docassets/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simple/docassets/simple.png -------------------------------------------------------------------------------- /Examples/simple/graph.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | graph: 3 | nodes: 4 | - node: source 5 | identified: true 6 | kind: Source 7 | outputs: 8 | - output: o 9 | samples: 5 10 | type: float 11 | - node: processing 12 | identified: true 13 | kind: ProcessingNode 14 | inputs: 15 | - input: i 16 | samples: 7 17 | type: float 18 | outputs: 19 | - output: o 20 | samples: 7 21 | type: float 22 | - node: sink 23 | identified: true 24 | kind: Sink 25 | inputs: 26 | - input: i 27 | samples: 5 28 | type: float 29 | edges: 30 | - src: 31 | node: source 32 | output: o 33 | dst: 34 | node: processing 35 | input: i 36 | - src: 37 | node: processing 38 | output: o 39 | dst: 40 | node: sink 41 | input: i 42 | 43 | -------------------------------------------------------------------------------- /Examples/simple/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/simple/pre_schedule_simple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simple/pre_schedule_simple.pdf -------------------------------------------------------------------------------- /Examples/simple/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/simple/simple.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simple/simple.pdf -------------------------------------------------------------------------------- /Examples/simple/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simple/simple.png -------------------------------------------------------------------------------- /Examples/simpledsp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(simpledsp) 5 | 6 | 7 | add_executable(simpledsp generated/scheduler.cpp main.cpp) 8 | 9 | dotdependency(simpledsp simpledsp ON create.py) 10 | cppdependency(simpledsp generated/scheduler.cpp create.py) 11 | add_sdf_dir(simpledsp) 12 | 13 | target_include_directories(simpledsp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 14 | target_include_directories(simpledsp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/generated) 15 | target_link_libraries(simpledsp PRIVATE CMSISDSP) -------------------------------------------------------------------------------- /Examples/simpledsp/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | cmsis-dsp: true 6 | 7 | -------------------------------------------------------------------------------- /Examples/simpledsp/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float float32_t; 4 | 5 | #define OFFSET_VALUE 2.0f 6 | 7 | #endif -------------------------------------------------------------------------------- /Examples/simpledsp/docassets/simpledsp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simpledsp/docassets/simpledsp.png -------------------------------------------------------------------------------- /Examples/simpledsp/generated/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/simpledsp/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /Examples/simpledsp/pre_schedule_simpledsp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simpledsp/pre_schedule_simpledsp.pdf -------------------------------------------------------------------------------- /Examples/simpledsp/simpledsp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/simpledsp/simpledsp.pdf -------------------------------------------------------------------------------- /Examples/yaml/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(Yaml) 5 | 6 | 7 | add_custom_target(yaml ALL DEPENDS test.dot scheduler.cpp) 8 | 9 | dotdependency(yaml test ON graph.py) 10 | cppdependency(yaml scheduler.cpp graph.py) 11 | 12 | -------------------------------------------------------------------------------- /Examples/yaml/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: 6 | - int someVariable 7 | 8 | -------------------------------------------------------------------------------- /Examples/yaml/config2.yml: -------------------------------------------------------------------------------- 1 | version: 2.0.0 2 | code-generation-options: 3 | debug-limit: 1 4 | c-code-generation-options: 5 | c-optional-args: 6 | - int someVariable 7 | 8 | -------------------------------------------------------------------------------- /Examples/yaml/pre_schedule_test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/yaml/pre_schedule_test.pdf -------------------------------------------------------------------------------- /Examples/yaml/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | 21 | 22 | extern uint32_t scheduler(int *error,int someVariable); 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Examples/yaml/test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Examples/yaml/test.pdf -------------------------------------------------------------------------------- /Include/cg/nodes/README.md: -------------------------------------------------------------------------------- 1 | # Nodes 2 | 3 | Some nodes. Some are used in the examples. 4 | 5 | There are CPP and Python versions for most of the nodes. 6 | 7 | -------------------------------------------------------------------------------- /PythonPackage/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | include cmsis_stream/cg/scheduler/templates/* 3 | include cmsis_stream/cg/scheduler/example/* 4 | 5 | 6 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/__init__.py: -------------------------------------------------------------------------------- 1 | from importlib import metadata 2 | from importlib.metadata import PackageNotFoundError 3 | 4 | try: 5 | __author__ = metadata.metadata('cmsis_stream')['Author'] 6 | __version__ = metadata.version('cmsis_stream') 7 | except PackageNotFoundError: 8 | __author__ = "(unknown)" 9 | __version__ = "(unknown)" 10 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/PythonPackage/cmsis_stream/cg/__init__.py -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/nodes/host/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/PythonPackage/cmsis_stream/cg/nodes/host/__init__.py -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/__init__.py: -------------------------------------------------------------------------------- 1 | from .node import * 2 | from ..types import * 3 | from .description import * 4 | from .config import * 5 | from .standard import * -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/ARMCM55_FP_MVE_config.txt: -------------------------------------------------------------------------------- 1 | core_clk.mul=50000000 2 | mps3_board.visualisation.disable-visualisation=1 3 | cpu0.semihosting-enable=0 4 | cpu0.FPU=1 5 | cpu0.MVE=2 6 | cpu0.SAU=0 7 | cpu0.SECEXT=1 8 | cpu0.INITSVTOR=0 9 | cpu0.INITNSVTOR=0 10 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/Makefile.linux: -------------------------------------------------------------------------------- 1 | # Makefile for gcc compiler on Linux 2 | CC = g++ 3 | 4 | INCLUDES = -I. 5 | CFLAGS = -std=c++11 $(INCLUDES) 6 | 7 | all: 8 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main_host.c 9 | 10 | clean: 11 | rm -f ./simple 12 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/Makefile.mac: -------------------------------------------------------------------------------- 1 | # Makefile for Xccode gcc compiler on Mac 2 | XCodePath = $(shell xcode-select --print-path) 3 | CC = $(XCodePath)/usr/bin/g++ 4 | 5 | INCLUDES = -I. 6 | CFLAGS = -std=c++11 $(INCLUDES) 7 | 8 | all: 9 | $(CC) -o simple $(CFLAGS) ./scheduler.cpp main_host.c 10 | 11 | clean: 12 | rm -f ./simple 13 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Makefile for MSVC compiler on Windows 2 | SHELL = cmd 3 | CC = cl.exe 4 | RM = del /Q /F 5 | 6 | INCLUDES = /I. 7 | WINFLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd 8 | CFLAGS = $(INCLUDES) $(WINFLAGS) 9 | 10 | all: 11 | $(CC) /Fesimple.exe $(CFLAGS) ./scheduler.cpp main_host.c 12 | 13 | clean: 14 | $(RM) main.obj 15 | $(RM) scheduler.obj 16 | $(RM) simple.ilk 17 | $(RM) simple.exe 18 | $(RM) *.pdb -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/README.md: -------------------------------------------------------------------------------- 1 | # README 2 | 3 | ## Generate the C++ scheduler for the graph. 4 | 5 | `python graph.py` 6 | 7 | ## Host 8 | 9 | ### Compile 10 | 11 | `make -f Makefile.windows` for instance 12 | 13 | ### Run 14 | 15 | On unix like system, `./simple` 16 | 17 | On windows, `simple.exe` 18 | 19 | ## Embedded target 20 | 21 | ### Compile 22 | 23 | Using CMSIS build tools: 24 | 25 | `csolution convert -s simple_ac6.csolution.yml` 26 | 27 | `cbuild simple.CommandLine+VHT-Corstone-300.cprj` 28 | 29 | ### Run 30 | 31 | On windows `run_vht.bat` 32 | 33 | On other platform, you can look at the content of the script and adapt it. 34 | 35 | The Arm Virtual Hardware for CS 300 must be installed. 36 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/run.bat: -------------------------------------------------------------------------------- 1 | C:\Keil_v5\ARM\VHT\VHT_Corstone_SSE-300_Ethos-U55.exe ^ 2 | -f ARMCM55_FP_MVE_config.txt ^ 3 | -C cpu0.semihosting-enable=1 ^ 4 | -a cpu0="out\simple\VHT-Corstone-300\CommandLine\CommandLine+VHT-Corstone-300.axf" 5 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/simple.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main.c 6 | - file: scheduler.cpp 7 | 8 | add-path: 9 | - . 10 | 11 | components: 12 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 13 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 14 | for-context: 15 | - .CommandLine 16 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 17 | for-context: 18 | - .IDE 19 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 20 | for-context: 21 | - .IDE 22 | 23 | layers: 24 | - layer: vht.clayer.yml 25 | 26 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/start_project_custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | /* Put anything you need in this file */ 4 | 5 | #endif -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/start_project_main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "scheduler.h" 4 | 5 | int main(int argc, char const *argv[]) 6 | { 7 | int error; 8 | printf("Start\n"); 9 | uint32_t nbSched=scheduler(&error); 10 | return 0; 11 | } -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/example/vht.clayer.yml: -------------------------------------------------------------------------------- 1 | layer: 2 | # name: VHT 3 | description: Boot code for Virtual Hardware 4 | 5 | components: 6 | - component: ARM::CMSIS:CORE 7 | - component: Device:Startup&C Startup 8 | not-for-context: 9 | - +VHT-Corstone-300 10 | - +VHT-Corstone-310 11 | - component: ARM::Device:Definition 12 | for-context: 13 | - +VHT-Corstone-300 14 | - +VHT-Corstone-310 15 | - component: ARM::Device:Startup&Baremetal 16 | for-context: 17 | - +VHT-Corstone-300 18 | - +VHT-Corstone-310 19 | - component: ARM::Native Driver:Timeout 20 | for-context: 21 | - +VHT-Corstone-300 22 | - +VHT-Corstone-310 23 | - component: ARM::Native Driver:SysCounter 24 | for-context: 25 | - +VHT-Corstone-300 26 | - +VHT-Corstone-310 27 | - component: ARM::Native Driver:SysTimer 28 | for-context: 29 | - +VHT-Corstone-300 30 | - +VHT-Corstone-310 31 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/templates/cmsis.cpp: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | {% for ptr in ptrs %} 5 | {{ptr[0]}}* {{ptr[1]}}; 6 | {% endfor %} 7 | {% for ptr in inputs %} 8 | {{ptr[0]}}={{ptr[1].access}}getReadBuffer({{ptr[2]}}); 9 | {% endfor %} 10 | {% for ptr in outputs %} 11 | {{ptr[0]}}={{ptr[1].access}}getWriteBuffer({{ptr[2]}}); 12 | {% endfor %} 13 | {{func}}({{args}}); 14 | cgStaticError = 0; 15 | } -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/templates/cmsis.py: -------------------------------------------------------------------------------- 1 | 2 | {% for ptr in inputs %} 3 | {{ptr[0]}}={{ptr[1].access}}getReadBuffer({{ptr[2]}}) 4 | {% endfor %} 5 | {% for ptr in outputs %} 6 | {{ptr[0]}}={{ptr[1].access}}getWriteBuffer({{ptr[2]}}) 7 | {% endfor %} 8 | {{outArgs}}[:]=dsp.{{func}}({{inArgs}}) 9 | cgStaticError = 0 10 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/scheduler/templates/cmsisCheck.cpp: -------------------------------------------------------------------------------- 1 | 2 | bool canRun=true; 3 | {% for ptr in inputs %} 4 | canRun &= !({{ptr[1].access}}willUnderflowWith({{ptr[2]}})); 5 | {% endfor %} 6 | {% for ptr in outputs %} 7 | canRun &= !({{ptr[1].access}}willOverflowWith({{ptr[2]}})); 8 | {% endfor %} 9 | 10 | if (!canRun) 11 | { 12 | {% if asyncDefaultSkip %} 13 | cgStaticError = CG_SKIP_EXECUTION_ID_CODE; 14 | {% else %} 15 | cgStaticError = CG_BUFFER_ERROR_ID_CODE; 16 | {%- endif %} 17 | } 18 | else 19 | { 20 | cgStaticError = 0; 21 | } -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/sds/__init__.py: -------------------------------------------------------------------------------- 1 | from .sds_nodes import * 2 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cg/yaml/__init__.py: -------------------------------------------------------------------------------- 1 | from .exportyaml import export_graph,export_config 2 | from .importyaml import import_graph,import_config 3 | -------------------------------------------------------------------------------- /PythonPackage/cmsis_stream/cmsis_stream.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from cmsis_stream.cg.scheduler import * 3 | 4 | def print_usage(): 5 | print("Usage: cmsis-stream create directory") 6 | 7 | if len(sys.argv)==3: 8 | if sys.argv[1] == "create": 9 | project_name = sys.argv[2] 10 | print(f"Create project: {project_name}") 11 | createEmptyProject(project_name) 12 | print(""" 13 | Project created with scheduling iterations set to 1. 14 | When run, the scheduling will stop after one iteration. 15 | You can disable this setting in graph.py.""") 16 | else: 17 | print_usage() 18 | 19 | else: 20 | print_usage() 21 | 22 | exit(0) -------------------------------------------------------------------------------- /PythonPackage/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | build-backend = "setuptools.build_meta" -------------------------------------------------------------------------------- /PythonPackage/update_template.py: -------------------------------------------------------------------------------- 1 | import re 2 | import subprocess 3 | import shutil 4 | import os.path 5 | 6 | #shutil.copyfile(os.path.join("..","Include","cg","src","GenericNodes.h"), 7 | # os.path.join("cmsis_stream","cg","scheduler","templates","GenericNodes.h")) 8 | # 9 | #shutil.copyfile(os.path.join("..","Include","cg","src","cg_status.h"), 10 | # os.path.join("cmsis_stream","cg","scheduler","templates","cg_status.h")) 11 | # 12 | # 13 | shutil.copyfile(os.path.join("cmsis_stream","cg","scheduler","templates","GenericNodes.h"), 14 | os.path.join("..","Include","cg","src","GenericNodes.h") 15 | ) 16 | 17 | shutil.copyfile(os.path.join("cmsis_stream","cg","scheduler","templates","cg_status.h"), 18 | os.path.join("..","Include","cg","src","cg_status.h") 19 | ) 20 | -------------------------------------------------------------------------------- /Tests/.gitignore: -------------------------------------------------------------------------------- 1 | cprj/out 2 | cprj/tmp 3 | __pycache__ 4 | -------------------------------------------------------------------------------- /Tests/ARMCM55_FP_MVE_config.txt: -------------------------------------------------------------------------------- 1 | core_clk.mul=50000000 2 | mps3_board.visualisation.disable-visualisation=1 3 | cpu0.semihosting-enable=0 4 | cpu0.FPU=1 5 | cpu0.MVE=2 6 | cpu0.SAU=0 7 | cpu0.SECEXT=1 8 | cpu0.INITSVTOR=0 9 | cpu0.INITNSVTOR=0 10 | -------------------------------------------------------------------------------- /Tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 3.14) 2 | include(CMakePrintHelpers) 3 | 4 | project(test) 5 | 6 | set(CMAKE_C_STANDARD 11) 7 | set(CMAKE_CXX_STANDARD 11) 8 | 9 | add_executable(test main_duplicate_sync.cpp duplicate_sync/scheduler.cpp) 10 | 11 | target_include_directories(test PRIVATE duplicate_sync) 12 | target_include_directories(test PRIVATE .) 13 | target_include_directories(test PRIVATE ../Include/cg/src) 14 | -------------------------------------------------------------------------------- /Tests/EventRecorder.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Tests/EventRecorder.log -------------------------------------------------------------------------------- /Tests/RTE/Device/SSE-300-MPS3/cmsis_driver_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2022 Arm Limited. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CMSIS_DRIVER_CONFIG_H__ 18 | #define __CMSIS_DRIVER_CONFIG_H__ 19 | 20 | #include "system_SSE300MPS3.h" 21 | #include "device_cfg.h" 22 | #include "device_definition.h" 23 | #include "platform_base_address.h" 24 | 25 | #endif /* __CMSIS_DRIVER_CONFIG_H__ */ 26 | -------------------------------------------------------------------------------- /Tests/RTE/Device/SSE-300-MPS3/cmsis_driver_config.h.base@1.1.1: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019-2022 Arm Limited. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef __CMSIS_DRIVER_CONFIG_H__ 18 | #define __CMSIS_DRIVER_CONFIG_H__ 19 | 20 | #include "system_SSE300MPS3.h" 21 | #include "device_cfg.h" 22 | #include "device_definition.h" 23 | #include "platform_base_address.h" 24 | 25 | #endif /* __CMSIS_DRIVER_CONFIG_H__ */ 26 | -------------------------------------------------------------------------------- /Tests/RTE/_CommandLine_VHT-Corstone-300/RTE_Components.h: -------------------------------------------------------------------------------- 1 | /* 2 | * CSOLUTION generated file: DO NOT EDIT! 3 | * Generated by: csolution version 2.0.0 4 | * 5 | * Project: 'syncgraph.CommandLine+VHT-Corstone-300' 6 | * Target: 'CommandLine+VHT-Corstone-300' 7 | */ 8 | 9 | #ifndef RTE_COMPONENTS_H 10 | #define RTE_COMPONENTS_H 11 | 12 | 13 | /* 14 | * Define the Device Header File: 15 | */ 16 | #define CMSIS_device_header "SSE300MPS3.h" 17 | 18 | /* ARM::CMSIS:RTOS2:Keil RTX5:Source:5.5.4 */ 19 | #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */ 20 | #define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */ 21 | #define RTE_CMSIS_RTOS2_RTX5_SOURCE /* CMSIS-RTOS2 Keil RTX5 Source */ 22 | /* Keil.ARM Compiler::Compiler:Event Recorder:Semihosting:1.5.1 */ 23 | #define RTE_Compiler_EventRecorder 24 | #define RTE_Compiler_EventRecorder_DAP 25 | #define RTE_Compiler_EventRecorder_Semihosting 26 | 27 | 28 | #endif /* RTE_COMPONENTS_H */ 29 | -------------------------------------------------------------------------------- /Tests/RTE/_fifo.CommandLine_VHT-Corstone-300/RTE_Components.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Auto generated Run-Time-Environment Configuration File 4 | * *** Do not modify ! *** 5 | * 6 | * Project: 'fifo.CommandLine+VHT-Corstone-300' 7 | * Target: 'fifo.CommandLine+VHT-Corstone-300' 8 | */ 9 | 10 | #ifndef RTE_COMPONENTS_H 11 | #define RTE_COMPONENTS_H 12 | 13 | 14 | /* 15 | * Define the Device Header File: 16 | */ 17 | #define CMSIS_device_header "SSE300MPS3.h" 18 | 19 | /* ARM::CMSIS:RTOS2:Keil RTX5:Source:5.5.4 */ 20 | #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */ 21 | #define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */ 22 | #define RTE_CMSIS_RTOS2_RTX5_SOURCE /* CMSIS-RTOS2 Keil RTX5 Source */ 23 | /* Keil.ARM Compiler::Compiler:Event Recorder:Semihosting:1.5.1 */ 24 | #define RTE_Compiler_EventRecorder 25 | #define RTE_Compiler_EventRecorder_DAP 26 | #define RTE_Compiler_EventRecorder_Semihosting 27 | 28 | 29 | #endif /* RTE_COMPONENTS_H */ 30 | -------------------------------------------------------------------------------- /Tests/RTE/_fifobench.CommandLine_VHT-Corstone-300/RTE_Components.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Auto generated Run-Time-Environment Configuration File 4 | * *** Do not modify ! *** 5 | * 6 | * Project: 'fifobench.CommandLine+VHT-Corstone-300' 7 | * Target: 'fifobench.CommandLine+VHT-Corstone-300' 8 | */ 9 | 10 | #ifndef RTE_COMPONENTS_H 11 | #define RTE_COMPONENTS_H 12 | 13 | 14 | /* 15 | * Define the Device Header File: 16 | */ 17 | #define CMSIS_device_header "SSE300MPS3.h" 18 | 19 | /* ARM::CMSIS:RTOS2:Keil RTX5:Source:5.5.4 */ 20 | #define RTE_CMSIS_RTOS2 /* CMSIS-RTOS2 */ 21 | #define RTE_CMSIS_RTOS2_RTX5 /* CMSIS-RTOS2 Keil RTX5 */ 22 | #define RTE_CMSIS_RTOS2_RTX5_SOURCE /* CMSIS-RTOS2 Keil RTX5 Source */ 23 | /* Keil.ARM Compiler::Compiler:Event Recorder:Semihosting:1.5.1 */ 24 | #define RTE_Compiler_EventRecorder 25 | #define RTE_Compiler_EventRecorder_DAP 26 | #define RTE_Compiler_EventRecorder_Semihosting 27 | 28 | 29 | #endif /* RTE_COMPONENTS_H */ 30 | -------------------------------------------------------------------------------- /Tests/async/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern uint32_t scheduler(int *error); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /Tests/asyncgraph.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main.cpp 6 | - file: async/scheduler.cpp 7 | 8 | add-path: 9 | - async 10 | - . 11 | 12 | components: 13 | - component: ARM::CMSIS:DSP&Source@1.14.4 14 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 15 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 16 | for-context: 17 | - .CommandLine 18 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 19 | for-context: 20 | - .IDE 21 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 22 | for-context: 23 | - .IDE 24 | 25 | layers: 26 | - layer: vht.clayer.yml 27 | - layer: cg.clayer.yml 28 | 29 | -------------------------------------------------------------------------------- /Tests/cg.clayer.yml: -------------------------------------------------------------------------------- 1 | layer: 2 | description: Compute graph headers 3 | 4 | add-path: 5 | - ../Include/cg/src 6 | - ../Include/cg/nodes/cpp 7 | 8 | -------------------------------------------------------------------------------- /Tests/custom.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | typedef float float32_t; 4 | 5 | #endif -------------------------------------------------------------------------------- /Tests/custom_bench.h: -------------------------------------------------------------------------------- 1 | #ifndef _CUSTOM_H_ 2 | 3 | #define HALF 0.5 4 | extern const float32_t HANN[256]; 5 | 6 | 7 | #endif -------------------------------------------------------------------------------- /Tests/dot/duplicate_sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Tests/dot/duplicate_sync.png -------------------------------------------------------------------------------- /Tests/dot/fifobench_sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ARM-software/CMSIS-Stream/acf3af0da270a0243b75c46e027a889dbdf397e3/Tests/dot/fifobench_sync.png -------------------------------------------------------------------------------- /Tests/duplicate_sync/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern uint32_t scheduler(int *error,float* inputArray, 21 | float* outputArray); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /Tests/fifo.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main_fifo.cpp 6 | 7 | add-path: 8 | - . 9 | 10 | components: 11 | - component: ARM::CMSIS:DSP&Source@1.14.4 12 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 13 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 14 | for-context: 15 | - .CommandLine 16 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 17 | for-context: 18 | - .IDE 19 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 20 | for-context: 21 | - .IDE 22 | 23 | layers: 24 | - layer: vht.clayer.yml 25 | - layer: cg.clayer.yml 26 | 27 | -------------------------------------------------------------------------------- /Tests/fifobench_async.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main_fifobench.cpp 6 | - file: fifobench_async/scheduler.cpp 7 | - file: custom_bench.cpp 8 | - file: timing.c 9 | 10 | add-path: 11 | - fifobench_async 12 | - . 13 | 14 | components: 15 | - component: ARM::CMSIS:DSP&Source@1.14.4 16 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 17 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 18 | for-context: 19 | - .CommandLine 20 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 21 | for-context: 22 | - .IDE 23 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 24 | for-context: 25 | - .IDE 26 | 27 | layers: 28 | - layer: vht.clayer.yml 29 | - layer: cg.clayer.yml 30 | 31 | -------------------------------------------------------------------------------- /Tests/fifobench_async/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern uint32_t scheduler(int *error,float32_t* inputArray, 21 | float32_t* outputArray); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /Tests/fifobench_sync.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main_fifobench.cpp 6 | - file: fifobench_sync/scheduler.cpp 7 | - file: custom_bench.cpp 8 | - file: timing.c 9 | 10 | add-path: 11 | - fifobench_sync 12 | - . 13 | 14 | components: 15 | - component: ARM::CMSIS:DSP&Source@1.14.4 16 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 17 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 18 | for-context: 19 | - .CommandLine 20 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 21 | for-context: 22 | - .IDE 23 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 24 | for-context: 25 | - .IDE 26 | 27 | layers: 28 | - layer: vht.clayer.yml 29 | - layer: cg.clayer.yml 30 | 31 | -------------------------------------------------------------------------------- /Tests/fifobench_sync/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern uint32_t scheduler(int *error,float32_t* inputArray, 21 | float32_t* outputArray); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /Tests/graph_duplicate_sync.py: -------------------------------------------------------------------------------- 1 | # Include definitions from the Python package to 2 | # define datatype for the IOs and to have access to the 3 | # Graph class 4 | from cmsis_stream.cg.scheduler import * 5 | from nodes_bench import * 6 | 7 | # You can try with 120 8 | AUDIO_INTERRUPT_LENGTH = 192 9 | floatType=CType(F32,cmsis_dsp=False) 10 | 11 | NBSINK = 5 12 | 13 | ### Define nodes 14 | src=ArraySource("src",floatType,AUDIO_INTERRUPT_LENGTH) 15 | src.addVariableArg("inputArray") 16 | 17 | sink=[] 18 | for i in range(NBSINK): 19 | s=ArraySink(f"sink{i}",floatType,AUDIO_INTERRUPT_LENGTH) 20 | s.addVariableArg(f"&outputArray[{AUDIO_INTERRUPT_LENGTH*i}]") 21 | sink.append(s) 22 | 23 | the_graph = Graph() 24 | 25 | for i in range(NBSINK): 26 | the_graph.connect(src.o, sink[i].i) 27 | 28 | -------------------------------------------------------------------------------- /Tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #if defined(COMMAND_LINE) 4 | #include 5 | #endif 6 | #include "scheduler.h" 7 | 8 | #include "RTE_Components.h" 9 | #include CMSIS_device_header 10 | #include "cmsis_os2.h" 11 | 12 | 13 | void app_main (void *argument) 14 | { 15 | int error; 16 | uint32_t nbSched = 0; 17 | (void)argument; 18 | 19 | printf("Start\n\r"); 20 | 21 | 22 | nbSched=scheduler(&error); 23 | printf("Number of schedule iterations = %d\n\r",nbSched); 24 | printf("Error code = %d\n\r",error); 25 | 26 | 27 | #if defined(COMMAND_LINE) 28 | exit(0); 29 | #else 30 | osThreadExit(); 31 | #endif 32 | } 33 | 34 | int main(void) 35 | { 36 | // System Initialization 37 | SystemCoreClockUpdate(); 38 | 39 | 40 | osKernelInitialize(); // Initialize CMSIS-RTOS 41 | osThreadNew(app_main, NULL, NULL); // Create application main thread 42 | osKernelStart(); // Start thread execution 43 | for (;;) {} 44 | } 45 | -------------------------------------------------------------------------------- /Tests/nodes_bench.py: -------------------------------------------------------------------------------- 1 | # Include definitions from the Python package 2 | from cmsis_stream.cg.scheduler import GenericNode,GenericSink,GenericSource 3 | 4 | 5 | class ArraySink(GenericSink): 6 | def __init__(self,name,theType,inLength): 7 | GenericSink.__init__(self,name) 8 | self.addInput("i",theType,inLength) 9 | 10 | @property 11 | def typeName(self): 12 | """The name of the C++ class implementing this node""" 13 | return "ArraySink" 14 | 15 | class ArraySource(GenericSource): 16 | def __init__(self,name,theType,outLength): 17 | GenericSource.__init__(self,name) 18 | self.addOutput("o",theType,outLength) 19 | 20 | @property 21 | def typeName(self): 22 | """The name of the C++ class implementing this node""" 23 | return "ArraySource" 24 | 25 | -------------------------------------------------------------------------------- /Tests/run_fifo.bat: -------------------------------------------------------------------------------- 1 | C:\Keil_v5\ARM\VHT\VHT_Corstone_SSE-300_Ethos-U55.exe ^ 2 | -f ARMCM55_FP_MVE_config.txt ^ 3 | -C cpu0.semihosting-enable=1 ^ 4 | -a cpu0="out\fifo\VHT-Corstone-300\CommandLine\fifo.axf" 5 | -------------------------------------------------------------------------------- /Tests/run_fifobench_async.bat: -------------------------------------------------------------------------------- 1 | C:\Keil_v5\ARM\VHT\VHT_Corstone_SSE-300_Ethos-U55.exe ^ 2 | -f ARMCM55_FP_MVE_config.txt ^ 3 | -C cpu0.semihosting-enable=1 ^ 4 | -a cpu0="out\fifobench_async\VHT-Corstone-300\CommandLine\fifobench_async.axf" 5 | -------------------------------------------------------------------------------- /Tests/run_fifobench_sync.bat: -------------------------------------------------------------------------------- 1 | C:\Keil_v5\ARM\VHT\VHT_Corstone_SSE-300_Ethos-U55.exe ^ 2 | -f ARMCM55_FP_MVE_config.txt ^ 3 | -C cpu0.semihosting-enable=1 ^ 4 | -a cpu0="out\fifobench_sync\VHT-Corstone-300\CommandLine\fifobench_sync.axf" 5 | -------------------------------------------------------------------------------- /Tests/sync/scheduler.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Generated with CMSIS-Stream python scripts. 4 | The generated code is not covered by CMSIS-Stream license. 5 | 6 | The support classes and code are covered by CMSIS-Stream license. 7 | 8 | */ 9 | 10 | #ifndef _SCHEDULER_H_ 11 | #define _SCHEDULER_H_ 12 | 13 | #ifdef __cplusplus 14 | extern "C" 15 | { 16 | #endif 17 | 18 | 19 | 20 | extern uint32_t scheduler(int *error); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /Tests/syncgraph.cproject.yml: -------------------------------------------------------------------------------- 1 | project: 2 | groups: 3 | - group: App 4 | files: 5 | - file: main.cpp 6 | - file: sync/scheduler.cpp 7 | 8 | add-path: 9 | - sync 10 | - . 11 | 12 | components: 13 | - component: ARM::CMSIS:DSP&Source@1.14.4 14 | - component: ARM::CMSIS:RTOS2:Keil RTX5&Source@5.5.4 15 | - component: Keil::Compiler&ARM Compiler:Event Recorder&Semihosting@1.5.1 16 | for-context: 17 | - .CommandLine 18 | - component: Keil::Compiler&ARM Compiler:Event Recorder&DAP@1.5.1 19 | for-context: 20 | - .IDE 21 | - component: Keil::Compiler&ARM Compiler:I/O:STDOUT&EVR 22 | for-context: 23 | - .IDE 24 | 25 | layers: 26 | - layer: vht.clayer.yml 27 | - layer: cg.clayer.yml 28 | 29 | -------------------------------------------------------------------------------- /Tests/vht.clayer.yml: -------------------------------------------------------------------------------- 1 | layer: 2 | # name: VHT 3 | description: Boot code for Virtual Hardware 4 | 5 | components: 6 | - component: ARM::CMSIS:CORE 7 | - component: Device:Startup&C Startup 8 | not-for-context: 9 | - +VHT-Corstone-300 10 | - +VHT-Corstone-310 11 | - component: ARM::Device:Definition 12 | for-context: 13 | - +VHT-Corstone-300 14 | - +VHT-Corstone-310 15 | - component: ARM::Device:Startup&Baremetal 16 | for-context: 17 | - +VHT-Corstone-300 18 | - +VHT-Corstone-310 19 | - component: ARM::Native Driver:Timeout 20 | for-context: 21 | - +VHT-Corstone-300 22 | - +VHT-Corstone-310 23 | - component: ARM::Native Driver:SysCounter 24 | for-context: 25 | - +VHT-Corstone-300 26 | - +VHT-Corstone-310 27 | - component: ARM::Native Driver:SysTimer 28 | for-context: 29 | - +VHT-Corstone-300 30 | - +VHT-Corstone-310 31 | --------------------------------------------------------------------------------