diff --git a/ComputeGraph/cg/static/src/GenericNodes.h b/ComputeGraph/cg/static/src/GenericNodes.h index 3d18fcdc..061f8c2e 100644 --- a/ComputeGraph/cg/static/src/GenericNodes.h +++ b/ComputeGraph/cg/static/src/GenericNodes.h @@ -137,8 +137,8 @@ public: GenericNode(FIFOBase &src,FIFOBase &dst):mSrc(src),mDst(dst){}; protected: - OUT * getWriteBuffer(){return mDst.getWriteBuffer(outputSize);}; - IN * getReadBuffer(){return mSrc.getReadBuffer(inputSize);}; + OUT * getWriteBuffer(int nb = outputSize){return mDst.getWriteBuffer(nb);}; + IN * getReadBuffer(int nb = inputSize){return mSrc.getReadBuffer(nb);}; private: FIFOBase &mSrc; @@ -153,9 +153,9 @@ public: mDst1(dst1),mDst2(dst2){}; protected: - OUT1 * getWriteBuffer1(){return mDst1.getWriteBuffer(output1Size);}; - OUT2 * getWriteBuffer2(){return mDst2.getWriteBuffer(output2Size);}; - IN * getReadBuffer(){return mSrc.getReadBuffer(inputSize);}; + OUT1 * getWriteBuffer1(int nb=output1Size){return mDst1.getWriteBuffer(nb);}; + OUT2 * getWriteBuffer2(int nb=output2Size){return mDst2.getWriteBuffer(nb);}; + IN * getReadBuffer(int nb=inputSize){return mSrc.getReadBuffer(nb);}; private: FIFOBase &mSrc; @@ -178,11 +178,11 @@ public: mDst1(dst1),mDst2(dst2),mDst3(dst3){}; protected: - OUT1 * getWriteBuffer1(){return mDst1.getWriteBuffer(output1Size);}; - OUT2 * getWriteBuffer2(){return mDst2.getWriteBuffer(output2Size);}; - OUT3 * getWriteBuffer3(){return mDst3.getWriteBuffer(output3Size);}; + OUT1 * getWriteBuffer1(int nb=output1Size){return mDst1.getWriteBuffer(nb);}; + OUT2 * getWriteBuffer2(int nb=output2Size){return mDst2.getWriteBuffer(nb);}; + OUT3 * getWriteBuffer3(int nb=output3Size){return mDst3.getWriteBuffer(nb);}; - IN * getReadBuffer(){return mSrc.getReadBuffer(inputSize);}; + IN * getReadBuffer(int nb=inputSize){return mSrc.getReadBuffer(nb);}; private: FIFOBase &mSrc; @@ -201,9 +201,9 @@ public: mDst(dst){}; protected: - OUT * getWriteBuffer(){return mDst.getWriteBuffer(outputSize);}; - IN1 * getReadBuffer1(){return mSrc1.getReadBuffer(input1Size);}; - IN2 * getReadBuffer2(){return mSrc2.getReadBuffer(input2Size);}; + OUT * getWriteBuffer(int nb=outputSize){return mDst.getWriteBuffer(nb);}; + IN1 * getReadBuffer1(int nb=input1Size){return mSrc1.getReadBuffer(nb);}; + IN2 * getReadBuffer2(int nb=input2Size){return mSrc2.getReadBuffer(nb);}; private: FIFOBase &mSrc1; @@ -220,7 +220,7 @@ public: GenericSource(FIFOBase &dst):mDst(dst){}; protected: - OUT * getWriteBuffer(){return mDst.getWriteBuffer(outputSize);}; + OUT * getWriteBuffer(int nb=outputSize){return mDst.getWriteBuffer(nb);}; private: FIFOBase &mDst; @@ -233,7 +233,7 @@ public: GenericSink(FIFOBase &src):mSrc(src){}; protected: - IN * getReadBuffer(){return mSrc.getReadBuffer(inputSize);}; + IN * getReadBuffer(int nb=inputSize){return mSrc.getReadBuffer(nb);}; private: FIFOBase &mSrc; @@ -385,7 +385,7 @@ public: #if !defined(CHECKERROR) #define CHECKERROR if (cgStaticError < 0) \ {\ - break;\ + goto errorHandling;\ } #endif diff --git a/ComputeGraph/examples/example1/generated/scheduler.cpp b/ComputeGraph/examples/example1/generated/scheduler.cpp index 007d5de6..2f8034f4 100644 --- a/ComputeGraph/examples/example1/generated/scheduler.cpp +++ b/ComputeGraph/examples/example1/generated/scheduler.cpp @@ -96,6 +96,7 @@ uint32_t scheduler(int *error,int someVariable) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } diff --git a/ComputeGraph/examples/example2/generated/scheduler.cpp b/ComputeGraph/examples/example2/generated/scheduler.cpp index c2cb8ffd..577d2791 100644 --- a/ComputeGraph/examples/example2/generated/scheduler.cpp +++ b/ComputeGraph/examples/example2/generated/scheduler.cpp @@ -206,6 +206,7 @@ uint32_t scheduler(int *error,int opt1,int opt2) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } diff --git a/ComputeGraph/examples/example3/generated/scheduler.cpp b/ComputeGraph/examples/example3/generated/scheduler.cpp index 1170b495..a18685ad 100644 --- a/ComputeGraph/examples/example3/generated/scheduler.cpp +++ b/ComputeGraph/examples/example3/generated/scheduler.cpp @@ -180,6 +180,7 @@ uint32_t scheduler(int *error) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } diff --git a/ComputeGraph/examples/example6/generated/scheduler.cpp b/ComputeGraph/examples/example6/generated/scheduler.cpp index 308fefac..8556b118 100644 --- a/ComputeGraph/examples/example6/generated/scheduler.cpp +++ b/ComputeGraph/examples/example6/generated/scheduler.cpp @@ -122,6 +122,7 @@ uint32_t scheduler(int *error,arm_mfcc_instance_f32 *mfccConfig) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } diff --git a/ComputeGraph/examples/example8/generated/scheduler.cpp b/ComputeGraph/examples/example8/generated/scheduler.cpp index 3b431006..954c8165 100644 --- a/ComputeGraph/examples/example8/generated/scheduler.cpp +++ b/ComputeGraph/examples/example8/generated/scheduler.cpp @@ -148,6 +148,7 @@ uint32_t scheduler(int *error,int someVariable) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } diff --git a/cmsisdsp/cg/static/scheduler/config.py b/cmsisdsp/cg/static/scheduler/config.py index 2d8a7e81..c5039d91 100644 --- a/cmsisdsp/cg/static/scheduler/config.py +++ b/cmsisdsp/cg/static/scheduler/config.py @@ -74,6 +74,7 @@ class Configuration: # Display FIFO buffers in graph instead of datatype self.displayFIFOBuf = False + @property def debug(self): return (self.debugLimit > 0) diff --git a/cmsisdsp/cg/static/scheduler/templates/codeArray.cpp b/cmsisdsp/cg/static/scheduler/templates/codeArray.cpp index 9b2897b5..34697208 100644 --- a/cmsisdsp/cg/static/scheduler/templates/codeArray.cpp +++ b/cmsisdsp/cg/static/scheduler/templates/codeArray.cpp @@ -128,6 +128,7 @@ uint32_t {{config.schedName}}(int *error{{optionalargs()}}) nbSchedule++; } +errorHandling: *error=cgStaticError; return(nbSchedule); } \ No newline at end of file diff --git a/cmsisdsp/cg/static/scheduler/templates/commonc.cpp b/cmsisdsp/cg/static/scheduler/templates/commonc.cpp index 9a6de651..7ef4f016 100644 --- a/cmsisdsp/cg/static/scheduler/templates/commonc.cpp +++ b/cmsisdsp/cg/static/scheduler/templates/commonc.cpp @@ -70,6 +70,7 @@ uint32_t {{config.schedName}}(int *error{{optionalargs()}}) /* Run several schedule iterations */ {% block scheduleLoop %} {% endblock %} +errorHandling: *error=cgStaticError; return(nbSchedule); } \ No newline at end of file