From 8e4367753e49f241b5140519f74c070f58a1ee37 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Tue, 23 Jul 2013 17:23:56 +0200 Subject: [PATCH] mdlTerminate() is also called during code generation => do not report errors here --- sfAnalogOutput.c | 40 ++++++++-------------------------------- sfReadPWM.c | 3 +++ 2 files changed, 11 insertions(+), 32 deletions(-) diff --git a/sfAnalogOutput.c b/sfAnalogOutput.c index 249919f..987a67c 100644 --- a/sfAnalogOutput.c +++ b/sfAnalogOutput.c @@ -222,39 +222,15 @@ static void mdlOutputs(SimStruct *S, int_T tid) static void mdlTerminate(SimStruct *S) { //mf624_state_t* mfst = ssGetPWorkValue(S,0); + if (mf624_init(0) != 0) + return; + /*At the end of simulation disable D/A outputs*/ - if(mfst != NULL){ - mf624_write32((mf624_read32(MFST2REG(mfst, 0, GPIOC_reg)) - & ~GPIOC_DACEN_mask), // disable output, - MFST2REG(mfst, 0, GPIOC_reg)); - free(mfst); - mfst=NULL; - } else { - mfst = malloc(sizeof(mf624_state_t)); - #define BUFF_SMALL 32 - char buff[BUFF_SMALL]; - memset(buff, '\0', BUFF_SMALL); - mfst->uio_dev = "uio0"; - - strncat(buff, "/dev/", 5); - strncat(buff, mfst->uio_dev, sizeof(buff) - 6); - - mfst->device_fd = open_device(buff); - if (mfst->device_fd < 0) { - ssSetErrorStatus(S,"open failed"); - return; - } - if (mmap_regions(mfst) < 0) { - ssSetErrorStatus(S,"mmap_regions failed"); - return; - } - mf624_write32((mf624_read32(MFST2REG(mfst, 0, GPIOC_reg)) - & ~GPIOC_DACEN_mask), // disable output, - MFST2REG(mfst, 0, GPIOC_reg)); - free(mfst); - mfst=NULL; - } - + mf624_write32((mf624_read32(MFST2REG(mfst, 0, GPIOC_reg)) + & ~GPIOC_DACEN_mask), // disable output, + MFST2REG(mfst, 0, GPIOC_reg)); + free(mfst); + mfst=NULL; } diff --git a/sfReadPWM.c b/sfReadPWM.c index 793838c..ac193e4 100644 --- a/sfReadPWM.c +++ b/sfReadPWM.c @@ -233,6 +233,9 @@ static void mdlOutputs(SimStruct *S, int_T tid) */ static void mdlTerminate(SimStruct *S) { + if (mf624_init(NULL) != 0) + return; + /* FIXME: This is ugly! */ if(mfst!=NULL){ mf624_write32(CTR_STOP,MFST2REG(mfst,4,CTRXCTRL)); -- 2.39.2