/* Generated with CMSIS-DSP Compute Graph Scripts. The generated code is not covered by CMSIS-DSP license. The support classes and code is covered by CMSIS-DSP license. */ {% if config.dumpFIFO %} #define DEBUGSCHED 1 {% endif %} {% if config.CMSISDSP -%} #include "arm_math.h" {% endif %} #include "{{config.customCName}}" #include "{{config.genericNodeCName}}" #include "{{config.appNodesCName}}" #include "{{config.schedulerCFileName}}.h" {% if config.postCustomCName -%} #include "{{config.postCustomCName}}" {% endif %} {% include "defineConfig.h" %} CG_AFTER_INCLUDES {% macro optionalargs() -%} {% if config.cOptionalArgs %},{{config.cOptionalArgs}}{% endif %} {% endmacro -%} {% block schedArray %} {% endblock %} CG_BEFORE_FIFO_BUFFERS /*********** FIFO buffers ************/ {% for fifo in fifos %} #define FIFOSIZE{{fifo.fifoID}} {{fifo.length}} {% endfor %} {% for buf in sched._graph._allBuffers %} #define BUFFERSIZE{{buf._bufferID}} {{buf._length}} CG_BEFORE_BUFFER {{buf._theType.ctype}} {{config.prefix}}buf{{buf._bufferID}}[BUFFERSIZE{{buf._bufferID}}]={0}; {% endfor %} CG_BEFORE_SCHEDULER_FUNCTION uint32_t {{config.schedName}}(int *error{{optionalargs()}}) { int cgStaticError=0; uint32_t nbSchedule=0; {% if config.debug %} int32_t debugCounter={{config.debugLimit}}; {% endif %} CG_BEFORE_FIFO_INIT; /* Create FIFOs objects */ {% for id in range(nbFifos) %} {% if fifos[id].hasDelay %} FIFO<{{fifos[id].theType.ctype}},FIFOSIZE{{id}},{{fifos[id].isArrayAsInt}}> fifo{{id}}({{config.prefix}}buf{{fifos[id].buffer._bufferID}},{{fifos[id].delay}}); {% else %} FIFO<{{fifos[id].theType.ctype}},FIFOSIZE{{id}},{{fifos[id].isArrayAsInt}}> fifo{{id}}({{config.prefix}}buf{{fifos[id].buffer._bufferID}}); {% endif %} {% endfor %} CG_BEFORE_NODE_INIT; /* Create node objects */ {% for node in nodes %} {% if node.hasState %} {{node.typeName}}<{{node.ioTemplate()}}> {{node.nodeName}}({{node.args}}); {% endif %} {% endfor %} /* Run several schedule iterations */ {% block scheduleLoop %} {% endblock %} errorHandling: CG_AFTER_SCHEDULE; *error=cgStaticError; return(nbSchedule); }