AnsweredAssumed Answered

internal compiler error

Question asked by young hur on Aug 9, 2018
Latest reply on Aug 10, 2018 by ZhangJennie

>internal compiler error (report to <cw_bug@freescale.com>)
>while executing in file 'InstrEncodingLISA.c' line: 1800
>(compiling 'focSlowLoop' in 'MC9S12ZVML128_PMSM.c')

 

static tBool focSlowLoop()
{
drvFOC.pospeControl.wRotElReqRamp = GFLIB_Ramp(drvFOC.pospeControl.wRotElReq, &drvFOC.speedRamp);

drvFOC.pospeControl.wRotEl = GDFLIB_FilterMA_F16(drvFOC.pospeControl.wRotEl, &drvFOC.pospeControl.wRotFilter);

if(drvFOC.pospeControl.wRotEl<0) {
drvFOC.pospeControl.wRotEl = 0;
}

if(pos_mode==force) {
if (drvFOC.pospeControl.wRotElReqRamp<=drvFOC.pospeSensorless.wRotElMatch) {
drvFOC.pospeOpenLoop.iQUpperLimit = CUR_LIM_OPENLOOP;
} else {
drvFOC.pospeOpenLoop.iQUpperLimit = CUR_LIM_OPENLOOP + MLIB_Mul_F16(drvFOC.pospeControl.wRotElReqRamp-drvFOC.pospeSensorless.wRotElMatch, (FRAC16(0.8)-CUR_LIM_OPENLOOP));
}
}
drvFOC.pospeControl.wRotElErr = MLIB_SubSat(drvFOC.pospeControl.wRotElReqRamp,drvFOC.pospeControl.wRotEl);

drvFOC.iDQReq.f16Arg2 = GFLIB_ControllerPIpAW(drvFOC.pospeControl.wRotElErr,&drvFOC.speedPI);
drvFOC.iDQReq.f16Arg2 = ((tU32)drvFOC.pospeOpenLoop.iQUpperLimit * (65535-drvFOC.slWeight) + (tU32)drvFOC.iDQReq.f16Arg2 * drvFOC.slWeight)>>16;

return true;
}

Outcomes